关于正则表达式

时间:2015-11-07 17:53:25

标签: python regex

import re

line = 'Here is my probblem, brother!'

t = re.findall('..b', line)

print(t)

打印:

['rob', ', b']

但它应该在'probblem'中找到'obb'。为什么呢?

1 个答案:

答案 0 :(得分:5)

因为.会匹配一个字符,在这种情况下,您有'ro'', ',后跟一个b。关于这一点,如果你想匹配这些模式,finall()函数与重叠模式不匹配,你可以使用positive look ahead并将你的模式放在一个捕获组中:

>>> t = re.findall('(?=(..b))', line)
>>> t
['rob', 'obb', ', b']