我想找到一个子串的索引位置,但是子串很长且难以表达(多行,甚至你需要转义它)所以我想使用正则表达式来匹配它们,并返回子串的索引, 像str.find或str.rfind这样的函数, 是否有一些帮助?
答案 0 :(得分:1)
在成功匹配的结果对象上使用.start()
方法(所谓的匹配对象):
mo = re.search('foo', veryLongString)
if mo:
return mo.start()
如果匹配成功,mo.start()
将为搜索到的字符串中的匹配子字符串提供(第一个)索引。
答案 1 :(得分:0)
正则表达式“re”包应该是帮助
答案 2 :(得分:0)
这样的事可能有用:
import re
def index(longstr, pat):
rx = re.compile(r'(?P<pre>.*?)({0})'.format(pat))
match = rx.match(longstr)
return match and len(match.groupdict()['pre'])
然后:
>>> index('bar', 'foo') is None
True
>>> index('barfoo', 'foo')
3
>>> index('\xbarfoo', 'foo')
2