我有一个字符串aaab
。我希望Python表达式与aa
匹配,因此我希望正则表达式返回aa
和aa
,因为有两种方法可以找到aa
的子字符串。
但是,这不是发生的事情。
这就是我所做的
a = "aaab"
b = re.match('aa', a)
答案 0 :(得分:1)
您可以通过前瞻和内部捕获组来实现它:
(?=(a{2}))
由于前瞻不会移动到字符串中的下一个位置,因此我们可以多次扫描相同的文本,从而实现重叠匹配。
请参阅demo
import re
p = re.compile(r'(?=(a{2}))')
test_str = "aaab"
print(re.findall(p, test_str))
答案 1 :(得分:0)
概括@stribizhev解决方案以匹配一个或多个字符a
:(?=(a{1,}))
三个或更多:(?=(a{3,}))
等。