import re
line = 'Here is my probblem, brother!'
t = re.findall('..b', line)
print(t)
Run Code Online (Sandbox Code Playgroud)
这打印:
['rob', ', b']
Run Code Online (Sandbox Code Playgroud)
但它应该在'probblem'中找到'obb'.为什么?
由于.将匹配一个字符,在这种情况下,你必须'ro'和 ', '它后面跟着一个b.关于这一点,finall()如果你想匹配这些模式,函数与重叠模式不匹配,你可以使用正向前看并将你的模式放在一个捕获组中:
>>> t = re.findall('(?=(..b))', line)
>>> t
['rob', 'obb', ', b']
Run Code Online (Sandbox Code Playgroud)