gpt4 book ai didi

python - 使用正则表达式提取字符串位置Python

转载 作者:行者123 更新时间:2023-12-01 05:13:42 25 4
gpt4 key购买 nike

我正在尝试使用正则表达式提取子字符串的位置(索引)。我需要使用正则表达式,因为字符串不会完全相同。我想要获取子字符串的位置(开始或结束位置),这样我就可以获取该子字符串后面的 1,000 个字符。

例如,如果我有“虽然外币交易频繁,但大多数人赚的钱很少”。我想找到“外币”的位置,这样我就可以得到后面的所有单词。

f5 是文本。

我已经尝试过:

p = re.compile("((^\s*|\.\s*)foreign\s*(currency|currencies))?")
for m in p.finditer(f5):
print m.start(), m.group()

获取位置。即使我已经检查以确保正则表达式找到了我在文本中查找的内容,这也给了我 (0,0) 。

我也尝试过:

location = re.search(r"((^\s*|\.\s*)foreign\s*(currency|currencies))?", f5)
print location

输出为<_sre.SRE_Match at 0x297d3328>

如果我尝试

location.span() 

我再次得到(0,0)。

基本上,我想将 <_sre.SRE_Match at 0x297d3328> 转换为给出搜索词位置的整数。

我花了半天时间寻找解决方案。感谢您的帮助。

最佳答案

除了之前的解决方案/评论之外,如果您想要后面的所有单词,您可以执行以下操作:

>>> location = re.search(r".*foreign\s*currenc(y|ies)(.*)", f5)
>>> location.group(2)
' are traded frequently, very little money is made by most.'

.group(2) 部分与正则表达式中的 (.*) 匹配。

关于python - 使用正则表达式提取字符串位置Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23635170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com