我的问题是说我有ab+
,并且输入aabbbbba
时,只有在ab
,abb
,abbb
,abbbb
,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())
最佳答案
您将必须安装regex
软件包,它是re
的更强大替代方案。它支持可变宽度后向断言(而re
程序包仅支持固定宽度后向断言),因此可以改用以下正则表达式:
regex.findall(r'(?<=(ab+))', 'aabbbbba')
返回:
['ab', 'abb', 'abbb', 'abbbb', 'abbbbb']