Регулярные выражения: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 220:
:Группа без захвата. То же самое, но заключённое в скобках выражение не добавляется к списку захваченных фрагментов. Например, если требуется найти или «здравствуйте», или «здрасте», но не важно, какое именно приветствие найдено, можно воспользоваться выражением <code>здра(?:сте|вствуйте)</code>.
;(?= )
:Группа с проверкойположительной впередиопережающей (zero-widthпроверкой (positive lookahead assertion). Продолжает поиск только если справа от текущей позиции в тексте находится заключённое в скобки выражение. При этом само выражение не захватывается. Например, <code>говор(?=ить)</code> найдёт «говор» в «говорить», но не в «говорит».
;(?! )
:Группа с негативной опережающей проверкой (negative lookahead assertion). Продолжает поиск только если справа от текущей позиции в тексте не находится заключённое в скобки выражение. При этом само выражение не захватывается. Например, <code>говор(?!ить)</code> найдёт «говор» в «говорит», но не в «говорить».
;(?<= )
:Группа с положительной ретроспективной проверкой (positive lookabehind assertion). Продолжает поиск только если слева от текущей позиции в тексте находится заключённое в скобки выражение. При этом само выражение не захватывается. Например, <code>(?<=об)говорить</code> найдёт «говорить» в «обговорить», но не в «уговорить».
;(?<! )
:Группа с отрицательной ретроспективной проверкой (negative lookabehind assertion). Продолжает поиск только если слева от текущей позиции в тексте не находится заключённое в скобки выражение. При этом само выражение не захватывается. Например, <code>(?<=об)говорить</code> найдёт «говорить» в «уговорить», но не в «обговорить».
 
...