Разработка

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

Проверьте регулярное выражение, флаги, группы захвата и позиции совпадений в тексте.

  • Быстро и бесплатно
  • Данные остаются у вас
  • Без регистрации
01

Исходные данные

На вашем устройстве

Обновляется при вводе

Данные и параметры инструмента
02

Результат

Здесь появится результат

Введите данные, результат появится автоматически

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

Тестер регулярных выражений ищет совпадения в тексте и показывает захваченные группы, их значения и позиции. Дополнительно доступны генерация подходящей строки, справка по синтаксису и диаграмма поддерживаемых конструкций.

Шаблон, флаги и группы захвата

Регулярное выражение описывает условия поиска: допустимые символы, повторения, границы и варианты. Скобки могут выделять захватываемую группу, а именованная группа позволяет обращаться к ней по имени. Результат зависит и от шаблона, и от флагов.

Используется синтаксис JavaScript RegExp. Выражение из PCRE, Python или другой среды может требовать изменений. Вводите сам шаблон без обрамляющих /: флаги задаются отдельно.

Границы совпадения, захват и проверка контекста

Полное совпадение показывает участок, который нашел шаблон. Захватывающие скобки сохраняют текст группы для дальнейшего использования; захваты внутри lookaround могут находиться за границами полного совпадения. Группа без захвата помогает собрать выражение, не создавая дополнительный результат, а lookaround проверяет окружающий контекст без обязательного включения его в полное совпадение.

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

Почему шаблон иногда работает медленно

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

Проверяйте выражение не только на положительном примере, но и на длинном почти подходящем тексте. Worker и таймаут защищают взаимодействие этой страницы от затяжного поиска, но не делают тот же шаблон эффективным в вашем приложении. При переносе учитывайте движок и ограничения среды, где он будет реально исполняться.

Поиск и чтение результатов

В режиме «Совпадения (match)» заполните «Регулярное выражение» и «Текст для поиска». Пустой текст тоже можно проверить, например на совпадение границ. Флажок g включает все совпадения, i игнорирует регистр, m меняет работу границ строк, s разрешает точке захватывать перевод строки. Режимы Unicode u и v взаимно исключаются; поддержка v зависит от браузера.

Результат обновляется автоматически. Подсветка показывает найденные части исходника, карточки раскрывают группы и их диапазоны. Позиции считаются в кодовых единицах UTF-16, конец диапазона не включается. Поэтому эмодзи может занимать две позиции. Пустое совпадение обозначается отдельно и не означает ошибку поиска.

Генерация строки и диаграмма

«Пример строки (sample)» пытается построить значение и дополнительно проверяет его тем же выражением. Это удобно для тестовых данных, но не все конструкции поддерживаются генератором. Успешный пример не покрывает все возможные ветви шаблона.

Диаграмма доступна для части синтаксиса и шаблонов до 500 символов. Ее недоступность не отменяет работу поиска. В режиме «Справочник (reference)» можно посмотреть краткие обозначения операторов.

Поиск ограничен 1000 совпадений и выполняется в worker с таймаутом. Для длинных результатов есть «Показать ещё». Ошибка лимита или времени обработки не доказывает некорректность синтаксиса: сложное выражение может создавать чрезмерный перебор.