如何在python中使用正则表达式正确匹配序列?

时间:2019-07-03 06:56:29

标签: regex python-3.x

我有一个字符串,s="abaaaababbb".

我正在使用findall方法,并且我想知道所有(ab)+的情况。 我正在使用的代码是:

import re
s = "abaaaababbb"
x = re.findall("[ab]+",s)
print(x)

输出: ['abaaaababbb']

相反,我希望输出如下: ['ab' , 'abab']

如何为相同的文本编写正确的正则表达式?

1 个答案:

答案 0 :(得分:2)

您在问题((ab)+中提到的正则表达式几乎是正确的。

您只需要使捕获组成为非捕获组即可:

(?:ab)+

这是因为如果您在正则表达式中有任何捕获组,则findall将返回所有 groups (而不是所有匹配项)。