Regex и текст

Опережающие и ретроспективные проверки в Regex (Lookahead / Lookbehind)

Lookaround — это проверка нулевой ширины: она проверяет наличие или отсутствие текста до или после текущей позиции, не включая его в само совпадение.

Опубликовано

Позитивный Lookahead (?=...)

Находит число только если за ним следует слово 'руб', но само слово 'руб' в совпадение не входит.

\d+(?= руб)

Негативный Lookahead (?!...)

foo(?!bar)

Позитивный Lookbehind (?<=...)

(?<=\$)\d+

Проверьте пример

Потребуйте USD с помощью lookahead

Проверка смотрит на суффикс, не включая его в числовое совпадение.

\d+(?= USD)

Ожидаемый результат: Совпадают 10 и 30, но не 20 перед EUR.

Проверьте пример

Исключите один последующий суффикс

Негативный lookahead исключает foo, сразу после которого идёт bar.

foo(?!bar)

Ожидаемый результат: Совпадают отдельное foo и foo в fooqux, но не foobar.

Проверьте пример

Найдите цифры после знака доллара

Позитивный lookbehind проверяет предшествующий знак валюты, не захватывая его.

(?<=\$)\d+

Ожидаемый результат: Совпадают 10 и 30 после $, но не 20 после EUR.

Интерактивный тестер

Тестирование проверок Lookaround

Проверьте совпадения с опережающими и ретроспективными проверками в Regex Tester.

Открыть Regex Tester →