我试图使用re.finditer获取字符串中单词的起始和结束索引号。
对于大多数情况,我的模式工作正常,但是对于具有特殊字符的单词,我的正则表达式会导致错误。
问题:
我尝试了:
a = " we have c++ and c#"
pattern = ['c#','c++']
regex = re.compile(r'\b(' + '|'.join(pattern) + r')\b')
out = [ (m.start(0), m.end(0)) for m in regex.finditer(a)]
当前输出:
error: multiple repeat at position x
期望输出:
[(9,12),(17,19)]
大多数情况下,我的模式都能正常工作, 但是涉及到特殊字符的单词时,我遇到了问题。 我对正则表达式不太熟悉,请有经验的人帮忙解决一下,谢谢!