devopscodepro
Язык
Работает полностью в браузере — данные не покидают страницу.

Regex-тестер

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

движок регулярных выражений JavaScript (ECMAScript) — работает в вашем браузере

Тестирование регулярного выражения

Шаблон применяется к вашей тестовой строке с выбранными флагами, подсвечивая каждое совпадение и перечисляя группы захвата — нумерованные и именованные. Режим замены показывает результат String.replace с тем же шаблоном.

Движок — собственный движок браузера, поэтому вы видите ровно то, что сделает ваш JavaScript.

Будет ли этот шаблон работать в Python или Go?

В основном да, но не всегда. Синтаксис именованных групп различается, в RE2 у Go вовсе нет обратных ссылок и lookaround, а сокращения классов символов по-разному трактуют Unicode. Проверяйте в том языке, на котором поедете в прод, прежде чем доверять шаблону между движками.

Почему подсвечивается только первое совпадение?

Выключен флаг global. Без g регулярное выражение останавливается на первом совпадении — по той же причине замена без g меняет только одно вхождение, и эта ошибка на удивление часто переживает ревью.

Что такое катастрофический бэктрекинг?

Вложенные квантификаторы над пересекающимися альтернативами — хрестоматийный пример (a+)+b — могут работать экспоненциальное время на несовпадающем вводе. Если шаблон быстр здесь и медленен в проде, разница во вводе, а не в движке. Никогда не собирайте регулярное выражение из недоверенных данных.

Как искать через переносы строк?

Два разных флага, которые часто путают. Флаг m заставляет ^ и $ совпадать на каждом переносе; флаг s заставляет точку совпадать и с переносом. Если нужно, чтобы шаблон охватывал несколько строк, обычно нужен s.

Смежные инструменты: Разбор cron, YAML / JSON / TOML и Base64.