我有一个字符串,s="abaaaababbb".
我正在使用findall方法,并且我想知道所有(ab)+
的情况。
我正在使用的代码是:
import re
s = "abaaaababbb"
x = re.findall("[ab]+",s)
print(x)
输出:
['abaaaababbb']
相反,我希望输出如下:
['ab' , 'abab']
如何为相同的文本编写正确的正则表达式?
答案 0 :(得分:2)
您在问题((ab)+
中提到的正则表达式几乎是正确的。
您只需要使捕获组成为非捕获组即可:
(?:ab)+
这是因为如果您在正则表达式中有任何捕获组,则findall
将返回所有 groups (而不是所有匹配项)。