Из Питона re
Документация:
(?<=...)
Соответствует, если текущей позиции в строке предшествует совпадение для ...
, которое заканчивается в текущей позиции. Это называется положительным взглядом за утверждением. (?<=abc)def
найдет совпадение в abcdef
, так как просмотрщик создаст резервную копию 3 символов и проверит, соответствует ли содержащийся шаблон. Содержащийся шаблон должен соответствовать только строкам некоторой фиксированной длины, что означает, что abc
или a|b
разрешены, а a*
и a{3,4}
- нет. Обратите внимание, что шаблоны, которые начинаются с положительных утверждений за задним числом, никогда не будут совпадать в начале искомой строки; вы, скорее всего, захотите использовать функцию search (), а не функцию match ():
>>> import re
>>> m = re.search('(?<=abc)def', 'abcdef')
>>> m.group(0)
'def'
В этом примере ищется слово, следующее за дефисом:
>>> m = re.search('(?<=-)\w+', 'spam-egg')
>>> m.group(0)
'egg'