>>> match = re.findall(r'\w\w', 'hello')
>>> print match
['he', 'll']
Так как \w\w означает два символа, 'он' и 'll' ожидаются. Но почему 'el' и 'lo' не соответствуют regex?
>>> match1 = re.findall(r'el', 'hello')
>>> print match1
['el']
>>>
Не regex эксперт, но я хотел бы ответить на свое подобное вопрос .
, Если Вы хотите использовать группу получения с предвидением:
пример regex: (\d) (? =.\1)
строка: 5252
это будет соответствовать первым 5, а также первое 2
(\d) должно сделать группу получения, (? = \d\1), должен соответствовать любой цифре, сопровождаемой группой 1 получения, не используя строку, таким образом позволить накладываться
Можно использовать новый Python regex модуль , который поддерживает перекрывающиеся соответствия.
>>> import regex as re
>>> match = re.findall(r'\w\w', 'hello', overlapped=True)
>>> print match
['he', 'el', 'll', 'lo']