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.