问题描述
我的问题是说我有ab+ ,我输入aabbbbba它只有在出现ab , abb , abbb , abbbb , abbbbb时才找到一个匹配abbbbb 。
我的代码在索引1处找到了匹配项,但没有考虑内部的匹配项,因此我尝试了所有尝试,并将其从abbbbb打印到ab 。
这是我的代码:
import re
exp, srt = input("RegEx,String:").split()
print(srt)
for m in re.finditer(exp, srt,):
print('"', m.group(0), '"', "is found at index: ", m.start())
1楼
您将必须安装软件包,这是re的更强大替代品。
它支持可变宽度的后向断言(而re软件包仅支持固定宽度的后向断言),因此您可以改用以下正则表达式:
regex.findall(r'(?<=(ab+))', 'aabbbbba')
返回:
['ab', 'abb', 'abbb', 'abbbb', 'abbbbb']