我的问题是说我有ab+,并且输入aabbbbba时,只有在ababbabbbabbbbabbbbb时才找到一个匹配项。

我的代码在索引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']

07-24 21:57