关于正则表达式

0rh*_*asi 2 python regex

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'.为什么?

Kas*_*mvd 5

由于.将匹配一个字符,在这种情况下,你必须'ro'', '它后面跟着一个b.关于这一点,finall()如果你想匹配这些模式,函数与重叠模式不匹配,你可以使用正向前看并将你的模式放在一个捕获组中:

>>> t = re.findall('(?=(..b))', line)
>>> t
['rob', 'obb', ', b']
Run Code Online (Sandbox Code Playgroud)