Что означает (? <= X) в регулярных выражениях? - PullRequest
8 голосов
/ 26 февраля 2010

Что означает (?<=x) в регулярном выражении?

Кстати, я прочитал инструкцию здесь .

Ответы [ 5 ]

10 голосов
/ 26 февраля 2010

Это позитивный взгляд позади .

(?<=a)b (положительный вид сзади) соответствует b (и только b) в cab, но не соответствует bed или debt.

Вы не найдете его ни в одном руководстве по JavaScript, поскольку оно не поддерживается в регулярных выражениях JavaScript :

Наконец, разновидности, такие как JavaScript, Ruby и Tcl, вообще не поддерживают просмотр назад, даже если они поддерживают просмотр вперед.

2 голосов
/ 26 февраля 2010

Это называется положительным взглядом сзади, он смотрит назад на символ x, но обратите внимание, что это не поддерживается javascript. Для дальнейшего использования вот лучшее руководство :)

2 голосов
/ 26 февраля 2010

Из Питона 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'
1 голос
/ 26 февраля 2010
1 голос
/ 26 февраля 2010

С регулярные выражения.инфо :

Позитивный взгляд нулевой ширины. Сопоставляется с позицией, если можно сопоставить шаблон внутри прогнозной точки, заканчивающийся в этой позиции (то есть слева от этой позиции). В зависимости от используемого вами выражения regex, вы можете не иметь возможности использовать квантификаторы и / или чередования внутри lookhehind.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...