Онлайн-инструменты

Regex Tester — проверка регулярных выражений онлайн

Проверяйте JavaScript RegExp, группы, позиции и замену локально с защитой от долгого выполнения.

Terabita.byБесплатно · Без установки · Без хранения данных

Проверка регулярного выражения

Тестируйте JavaScript RegExp, группы и замену локально — тяжёлое выражение автоматически останавливается.

Готов к проверке
Готовые примеры
Проверяем выражение Выполняем RegExp в отдельном локальном потоке и собираем позиции, группы и результат замены.
Совпадения
0
Флаги
нет
Группы
0
Символы
0
Время
Режим поиска
Все совпадения

Показаны первые совпадений. Уточните выражение или увеличьте лимит.

Подсветка совпадений

Контекст исходного текста с найденными фрагментами.

0 совпадений

Добавьте исходный текст для проверки.

Найденные совпадения

Индекс отсчитывается с нуля, строка и столбец — с единицы.

0 совпадений

Совпадений нет. Проверьте шаблон, флаги и исходный текст.

Предпросмотр замены

Результат применения строки замены с учётом флага g.

0 замен

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

Об инструменте

Проверяйте JavaScript RegExp полностью локально: все совпадения, точные позиции, capture groups, именованные группы, флаги, подсветку и результат замены. Вычисление выполняется в отдельном потоке и автоматически останавливается, если выражение работает слишком долго.

Как пользоваться

  1. Введите шаблон без окружающих слешей, например (?<word>Terabita).
  2. Выберите флаги или укажите их вручную.
  3. Добавьте исходный текст и при необходимости строку замены.
  4. Нажмите «Проверить» и изучите позиции, группы, подсветку и предпросмотр замены.
  5. Скопируйте выражение или отчёт либо скачайте таблицу совпадений в CSV.

Примеры

  • Email: выделяет имя пользователя и домен в именованные группы.
  • URL: находит адреса HTTP и HTTPS в обычном тексте.
  • IPv4: показывает четыре числовые группы адреса; для строгой проверки диапазона октетов нужен более точный шаблон.
  • Замена: используйте $& для всего совпадения, $1 для группы по номеру и $<name> для именованной группы.

Регулярные выражения JavaScript: синтаксис, флаги и безопасная проверка

Регулярное выражение описывает шаблон поиска в тексте. Regex Tester помогает проверить синтаксис JavaScript RegExp, увидеть каждое совпадение и понять, какие части строки попали в группы, до переноса выражения в код.

Шаблон вводится без разделителей

В поле указывается содержимое выражения без внешних слешей: вместо /hello/gi введите hello, а флаги g и i выберите отдельно. Так интерфейс не путает символ слеша внутри URL с границей литерала.

Символьные классы и квантификаторы

Классы \d, \w и \s обозначают цифру, символ слова и пробельный символ. Квантификаторы *, +, ? и {n,m} задают количество повторений. Квадратные скобки описывают набор допустимых символов.

Якоря и границы

^ и $ привязывают совпадение к началу и концу строки, а \b обозначает границу слова. С флагом m якоря работают для каждой строки многострочного текста.

Обычные, именованные и незахватывающие группы

Скобки (...) создают capture group, (?<name>...) — именованную группу, а (?:...) группирует выражение без сохранения результата. Обратные ссылки \1 и \k<name> позволяют повторно использовать найденное значение.

Опережающие и ретроспективные проверки

Lookahead (?=...) и (?!...) проверяет текст справа, lookbehind (?<=...) и (?<!…) — слева. Они не добавляют проверяемый фрагмент к самому совпадению и могут создавать совпадения нулевой длины.

Флаги JavaScript RegExp

g заменяет все совпадения, i отключает учёт регистра, m включает многострочные якоря, s разрешает точке совпадать с переводом строки, u включает Unicode-режим, v — Unicode sets, y запускает поиск строго с lastIndex, а d добавляет индексы групп в поддерживаемых браузерах. Флаги u и v нельзя использовать одновременно.

Замена найденных фрагментов

Строка замены поддерживает стандартный синтаксис JavaScript: $& вставляет совпадение целиком, $1 — первую группу, $<name> — именованную группу. Без флага g заменяется только первое совпадение, хотя отчёт всё равно показывает все найденные позиции.

Пустые совпадения

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

Жадный и ленивый поиск

Квантификаторы по умолчанию жадные и выбирают максимально длинный подходящий фрагмент. Добавление ?, например .*?, делает их ленивыми. Лучше ограничивать допустимые символы точным классом, чем полагаться на широкое .*.

Unicode и регистр

Для текста с emoji и символами вне базовой многоязычной плоскости обычно нужен флаг u или современный v. Поведение \w и регистра в JavaScript может отличаться от ожиданий для некоторых языков, поэтому выражение следует проверять на реальных примерах.

Опасность катастрофического возврата

Вложенные неоднозначные повторения могут заставить движок перебирать огромное число вариантов и заблокировать интерфейс. Это называют catastrophic backtracking и используют в атаках ReDoS. Инструмент запускает RegExp в отдельном Web Worker и останавливает проверку примерно через 800 мс, но в рабочем коде всё равно нужны ограничение длины ввода, безопасная структура выражения и нагрузочные тесты.

Различия между движками

Здесь используется RegExp текущего браузера. Синтаксис и поведение могут отличаться от PCRE в PHP, Python re, .NET Regex, RE2 и других движков. Проверяйте выражение именно в той среде, где оно будет выполняться.

Приватность локальной проверки

Шаблон, текст, группы, замена и экспорт обрабатываются JavaScript-кодом в браузере и не отправляются на сервер Terabita.by. Для связанных задач используйте JSON Formatter, URL Encoder / Decoder и сравнение текста.

Частые вопросы

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

Используется RegExp текущего браузера JavaScript. Он может отличаться от PCRE, Python, .NET и RE2.

Нужно ли вводить выражение между слешами?

Нет. Введите только шаблон, а флаги g, i, m, s, u, v, y и d укажите отдельно.

Что означают группы в результате?

Это значения capture groups в круглых скобках и именованных групп вида (?<name>...). Незахватывающая группа (?:...) в список не добавляется.

Почему без флага g показано несколько совпадений?

Отчёт специально сканирует весь текст, чтобы показать все позиции. Строка замены при этом соблюдает исходные флаги и без g изменяет только первое совпадение.

Что означает пустое совпадение?

Выражение совпало с позицией между символами, например из-за якоря или границы. Тестер безопасно продолжает поиск и не зацикливается.

Почему проверка была остановлена?

Вероятно, выражение вызвало слишком долгий перебор вариантов. Это признак риска ReDoS; упростите шаблон и ограничьте входные данные.

Отправляются ли шаблон и текст на сервер?

Нет. Проверка, подсветка, замена и экспорт выполняются локально в браузере в отдельном Web Worker.

Можно ли использовать результат в PHP или Python?

Не всегда напрямую. Синтаксис флагов, групп, Unicode и lookbehind различается между движками, поэтому выражение нужно повторно проверить в целевой среде.