Тестер регулярных выражений
Тестирование регулярных выражений с подсветкой совпадений в реальном времени, объяснением токенов и генерацией примеров строк
- Объяснение шаблона появится здесь.
Как использовать
Введите шаблон
Введите регулярное выражение и выберите нужные флаги.
Тестировать текст в реальном времени
Просматривайте подсвеченные совпадения и группы захвата в реальном времени.
Интерпретировать и генерировать
Просмотрите объяснение шаблона и сгенерируйте примеры строк.
Часто задаваемые вопросы
Да. В тестере можно включать и отключать флаги global, ignore case, multiline, dotAll, unicode и sticky.
Парсер читает ваш шаблон токен за токеном и генерирует объяснения простым языком для якорей, классов, групп и квантификаторов.
Да. Генератор примеров создаёт репрезентативную строку на основе вашего текущего шаблона, чтобы вы могли быстро проверить, что шаблон делает именно то, что задумано.
Жадный квантификатор, например .*, поглощает как можно больше, а затем выполняет откат; его ленивый двойник .*? останавливается на первом совпадении. На тексте say "hi" bye шаблон "..*" захватывает всю строку, а ".*?" захватывает только hi. По умолчанию квантификаторы жадные — добавьте ?, чтобы сделать любой квантификатор ленивым.
Скобки захватывают текст: (\d{4})-(\d{2}) на строке 2026-09-19 даёт группу 1 = 2026 и группу 2 = 09, а в шаблоне замены $1 подставляет захваченный текст. Именованные группы вроде (?<year>\d{4}) лучше читаются в сложных шаблонах. JavaScript нумерует группы по их открывающей скобке, начиная с 1 — группа 0 — это всегда всё совпадение.
Добавляйте u, когда шаблон или текст содержат не-ASCII символы: флаг заставляет \w и \d следовать правилам Unicode, включает property escapes вроде \p{L} и \p{Script=Arabic} и считает эмодзи одиночными символами. Без u UTF-16-суррогатная пара может быть разрезана пополам совпадением точки.
По умолчанию ^ и $ привязываются ко всей строке, а . пропускает переводы строк. Флаг m (multiline) заставляет ^ и $ совпадать на границе каждой строки, а флаг s (dotAll) позволяет . захватывать и переводы строк. Частый приём при разборе логов — оба флага вместе: /error.*timeout/gms.
Тестер запускает движок JavaScript в вашем браузере, поэтому следует семантике регулярных выражений ECMAScript (ECMA-262) — тому же движку, который String.prototype.match использует в продакшен-JS. Учтите отличия от PCRE или Python: в JavaScript нет \K и рекурсии, а lookbehind появился только в ES2018. Шаблоны, написанные для Perl или PCRE, могут потребовать небольших правок.
Похожие инструменты
Авторитетные источники
Первоисточники, лежащие в основе этого инструмента, — официальные стандарты и спецификации, а не пересказы из вторых рук.
MDN Web Docs - Regular Expressions
Справочник Mozilla по JavaScript RegExp: синтаксис, флаги и именованные группы захвата.
ECMA-262 - ECMAScript Language Specification
Глава официальной спецификации языка ECMAScript о регулярных выражениях.
Regular expression - Wikipedia
История и концепции регулярных выражений: от наследия Perl до современных движков.