Regex-тестер
Введите паттерн и тестовую строку — совпадения подсвечиваются на лету по мере ввода, группы захвата перечислены ниже. Использует тот же движок регулярных выражений, что и JavaScript в браузере.
Как пользоваться
Введите паттерн в первое поле (без слэшей по краям) и флаги вроде `g`, `i`, `m` во второе. Совпадения в тестовой строке подсвечиваются мгновенно, а если в паттерне есть группы захвата, захваченные значения каждого совпадения перечисляются ниже.
Поскольку используется нативный движок `RegExp` из JavaScript, паттерны ведут себя точно так же, как в браузере, Node.js или любом JS-коде — без сюрпризов из-за того, что другой «диалект» regex (например, PCRE или Python `re`) работает чуть иначе, чем протестировано здесь.
Частые вопросы
Что означают флаги регулярных выражений?
`g` (global) находит все совпадения, а не только первое; `i` делает поиск нечувствительным к регистру; `m` заставляет `^`/`$` совпадать с началом/концом каждой строки, а не всей строки целиком; `s` позволяет `.` совпадать с переносами строк; `u` включает полный режим Unicode.
Почему мой паттерн работает здесь, но не в Python или PHP?
«Диалекты» регулярных выражений немного различаются между языками — Python `re`, PCRE (используется в PHP и в режиме совместимости некоторыми другими инструментами) и движок JavaScript по-разному обрабатывают некоторые возможности (например, поддержку lookbehind, синтаксис именованных групп или притяжательные квантификаторы). Этот инструмент проверяет именно диалект JavaScript.
Как работают группы захвата?
Круглые скобки в паттерне, например `(\d+)`, захватывают совпавший текст как пронумерованную группу, которую можно использовать или извлечь отдельно от полного совпадения. Этот инструмент выводит захваченные группы каждого совпадения прямо под подсвеченным текстом.
Моя тестовая строка куда-то отправляется?
Нет — сопоставление происходит полностью в браузере через встроенный движок регулярных выражений JavaScript. Ни паттерн, ни тестовые данные никуда не передаются и не логируются.