可以说我有一个字符串abbb。我正在尝试使用正则表达式执行以下模式进行打印:

a
ab
abb
abbb


我试着做

import re
line= "abbb"
m = re.finditer('ab*',line)
for i in m:
    print i.group(1)


这是行不通的。在python文档中,他们说ab*将匹配aaba,后跟任意数量的b。我当时想finditer()将所有不同的匹配项存储在像{a,ab,...,abbb}这样的列表中。网络中finditer()的例子非常有限。我该如何实现?请注意,我需要使用正则表达式。

最佳答案

另一种正则表达式方式,它反转之前的字符串,并使用前瞻中包含的反转模式来获得重叠的匹配项:

>>> s = 'abbb'
>>> [i[::-1] for i in reversed(re.findall(r'(?=(b*a))', s[::-1]))]

09-25 21:35