Работает полностью в браузере — данные не покидают страницу.
Regex-тестер
Тест регулярных выражений JavaScript: подсветка совпадений, группы захвата и предпросмотр замены.
Тестирование регулярного выражения
Шаблон применяется к вашей тестовой строке с выбранными флагами, подсвечивая каждое совпадение и перечисляя группы захвата — нумерованные и именованные. Режим замены показывает результат String.replace с тем же шаблоном.
Движок — собственный движок браузера, поэтому вы видите ровно то, что сделает ваш JavaScript.
Будет ли этот шаблон работать в Python или Go?
В основном да, но не всегда. Синтаксис именованных групп различается, в RE2 у Go вовсе нет обратных ссылок и lookaround, а сокращения классов символов по-разному трактуют Unicode. Проверяйте в том языке, на котором поедете в прод, прежде чем доверять шаблону между движками.
Почему подсвечивается только первое совпадение?
Выключен флаг global. Без g регулярное выражение останавливается на первом совпадении — по той же причине замена без g меняет только одно вхождение, и эта ошибка на удивление часто переживает ревью.
Что такое катастрофический бэктрекинг?
Вложенные квантификаторы над пересекающимися альтернативами — хрестоматийный пример (a+)+b — могут работать экспоненциальное время на несовпадающем вводе. Если шаблон быстр здесь и медленен в проде, разница во вводе, а не в движке. Никогда не собирайте регулярное выражение из недоверенных данных.
Как искать через переносы строк?
Два разных флага, которые часто путают. Флаг m заставляет ^ и $ совпадать на каждом переносе; флаг s заставляет точку совпадать и с переносом. Если нужно, чтобы шаблон охватывал несколько строк, обычно нужен s.
Смежные инструменты: Разбор cron, YAML / JSON / TOML и Base64.