Без загрузки, 100% локально, без аккаунта

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

Введите шаблон, выберите флаги и протестируйте на своём тексте. Совпадения подсвечиваются прямо в тексте. Группы захвата перечисляются для каждого совпадения. Ничего не покидает ваш браузер.

Как работает Тестер регулярных выражений

Инструмент для тестирования регулярных выражений позволяет написать JavaScript-регулярку, вставить образец текста и мгновенно увидеть все совпадения с подсветкой. Захватывающие группы отображаются в таблице под текстом, так что вы можете проверить, что захватила каждая группа, без запуска отдельного скрипта. Поддерживаемые флаги: g (глобальный), i (без учёта регистра), m (многострочный), s (dotAll), u (Unicode) и y (sticky). Ничто из написанного вами не покидает устройство: движок сопоставления - это JavaScript-среда выполнения, встроенная в ваш браузер, а не сервер.

Под капотом инструмент вызывает стандартный конструктор ECMAScript RegExp с указанным шаблоном и флагами, а затем использует итератор string.matchAll для сбора всех объектов Match. Таблица групп строится непосредственно из этих объектов, поэтому то, что вы видите, в точности соответствует тому, что вернёт Node.js или браузер в продакшн-коде, без какого-либо промежуточного слоя.

Тестер регулярных выражений: пошаговая инструкция

  1. Введите или вставьте регулярное выражение в поле шаблона.
  2. Включите нужные флаги (g, i, m, s, u, y) с помощью чекбоксов.
  3. Вставьте тестируемый текст в поле образца.
  4. Изучите подсвеченные совпадения в тексте и таблицу групп захвата ниже.
  5. Корректируйте шаблон и наблюдайте за обновлением результатов в реальном времени.

Частые сценарии использования

  • Убедитесь, что шаблон извлечения email-адресов корректно обрабатывает граничные случаи вроде адресов с плюсом, прежде чем добавлять его в конвейер обработки данных.
  • Отладьте именованную группу захвата для разбора строк журнала, проверив значение каждой группы на реальном примере.
  • Проверьте, что URL-регулярка с флагом u корректно обрабатывает доменные имена с Unicode, прежде чем добавлять её в роутер.
  • Протестируйте шаблон поиска и замены в интерактивном режиме, чтобы убедиться в отсутствии нежелательных жадных совпадений в большом конфигурационном файле.

Часто задаваемые вопросы

Отправляется ли что-нибудь из написанного мной на сервер?

Нет. Сопоставление выполняется целиком внутри вкладки браузера с использованием встроенного движка JavaScript RegExp. Ваш шаблон, флаги и тестовый текст никуда не передаются. Откройте DevTools и проверьте вкладку Network во время набора текста: никаких запросов не отправляется.

Какой вариант регулярных выражений использует тестировщик?

ECMAScript (ES2022+) в реализации вашего браузера. Это тот же вариант, что используется в Node.js, Deno и современных браузерах. Возможности, специфичные для PCRE, такие как lookbehind переменной длины или притяжательные квантификаторы, не поддерживаются, хотя большинство распространённых шаблонов работают одинаково.

Почему я получаю ошибку о недопустимом регулярном выражении?

Конструктор RegExp браузера выбрасывает SyntaxError для шаблонов, не являющихся допустимыми ECMAScript-регулярками. Частые причины: неэкранированный обратный слеш, незакрытая группа или escape-последовательность свойства Unicode (\p{...}) без флага u.

Что показывает таблица групп захвата?

Для каждого найденного совпадения (в зависимости от флага g) таблица отображает полное совпадение, а затем каждую пронумерованную или именованную группу по порядку. Именованные группы выводятся с именем в заголовке столбца. Группы, не участвовавшие в совпадении, отображаются пустыми.

Можно ли тестировать шаблоны с lookbehind?

Да, при условии что lookbehind фиксированной или переменной длины поддерживается вашим браузером. Chrome и Firefox поддерживают lookbehind переменной длины с 2020 года. Safari добавил поддержку в 2022 году. Если ваш браузер актуальной версии, всё должно работать.

Работает ли тестировщик после отключения от сети в ходе сессии?

Да. После загрузки страницы все совпадения вычисляются локально движком JavaScript без сетевых зависимостей. Отключение от сети не прерывает работу.