我试图提取使用正则表达式的子字符串的位置(索引)。我需要使用正则表达式,因为字符串不会完全相同。我想获取子字符串的位置(无论是开始位置还是结束位置),因此我可以在该子字符串后面输入1,000个字符。使用正则表达式来提取字符串位置Python
例如,如果我有“而外币频繁交易,大部分赚的钱很少”。我想找到“外币”的位置,这样我就可以得到所有的单词。
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
输出为0x297d3328>
< _sre.SRE_Match如果我我得到(0,0)再次尝试
location.span()
。
基本上,我想将< _sre.SRE_Match在0x297d3328>转换为一个整数,该整数给出搜索词的位置。
我花了半天的时间寻找解决方案。谢谢你的帮助。
你能不能给一个'f5'不工作,这应该的[短,可复制示例](http://www.sscce.org/)? – DSM
SRE_Match是Python中的一个匹配对象,因此您根本不会转换它。对于一个实例,您需要通过'group()'将对象从对象中提取出来。 – Signus