construction
Lexora Tools

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

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

Флаги

Готовые шаблоны

100% конфиденциально: всё работает в вашем браузере, ничего не загружается на сервер.

Шпаргалка по regex

.
Любой символ, кроме перевода строки
\d
Цифра (0–9)
\w
Символ слова (буква, цифра или подчёркивание)
\s
Пробельный символ
[abc]
Один из символов a, b или c
[^abc]
Любой символ, кроме a, b и c
[a-z]
Любой символ от a до z
^
Начало строки (или каждой строки с флагом m)
$
Конец строки (или каждой строки с флагом m)
\b
Граница слова
*
Ноль или больше повторений предыдущего
+
Одно или больше повторений предыдущего
?
Ноль или одно повторение предыдущего
{n,m}
От n до m повторений
*?
Ленивое (минимальное) повторение
(abc)
Группа захвата
(?:abc)
Незахватывающая группа
(?<name>abc)
Именованная группа захвата
\1
Обратная ссылка на группу 1
a|b
Совпадает с a или b
(?=abc)
За которым следует abc (lookahead)
(?!abc)
За которым не следует abc
(?<=abc)
Перед которым стоит abc (lookbehind)
(?<!abc)
Перед которым не стоит abc

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

Без регистрации и установки — работает прямо в браузере.

  1. Шаг 1:Введите шаблон между слешами и включите нужные флаги или начните с одного из готовых шаблонов.
  2. Шаг 2:Вставьте тестовый текст. Совпадения сразу подсвечиваются и выводятся списком с позициями и группами захвата.
  3. Шаг 3:При желании введите текст замены с $1 или $<name>, чтобы увидеть результат String.replace, и скопируйте его.

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

Какой диалект regex используется?

Встроенный в браузер движок JavaScript (ECMAScript) — тот же, что в Node.js, Deno и фронтенд-коде. Большая часть синтаксиса совпадает с PCRE, Python и Java, но притяжательных квантификаторов и атомарных групп нет.

Что делают флаги g, i, m, s, u и y?

g ищет все совпадения, а не только первое; i игнорирует регистр; m заставляет ^ и $ срабатывать на переводах строк; s позволяет точке совпадать с переводом строки; u включает полную поддержку Unicode; y (sticky) ищет совпадение только в текущей позиции.

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

Нумерованные группы — $1, $2 и т. д., именованные — $<name>, всё совпадение — $&, а знак доллара — $$.

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

Вложенные квантификаторы вроде (a+)+ или (.*)* могут вызывать катастрофический бэктрекинг: движок перебирает экспоненциальное число вариантов. Сделайте квантификаторы конкретнее, используйте классы символов вместо точки или добавьте якоря.

Остаются ли мои тестовые данные конфиденциальными?

Да. Шаблоны и тестовые строки обрабатываются локально в воркере браузера и никогда не отправляются на сервер.

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

Регулярные выражения — компактный язык для поиска, проверки и преобразования текста: валидации email и телефонов, извлечения ID из логов, переписывания URL, разбора строк CSV или очистки пользовательского ввода. В них очень легко ошибиться: один неверно поставленный квантификатор или пропущенное экранирование — и выражение совпадает с гораздо большим (или меньшим) объёмом текста, чем задумано. Этот бесплатный тестер regex показывает каждое совпадение прямо во время ввода, подсвечивает его в тестовом тексте, выводит позицию и содержимое каждой нумерованной и именованной группы захвата и показывает результат замены со ссылками $1, $2 или $<name>.

Тестер использует движок регулярных выражений JavaScript (ECMAScript) вашего браузера, поэтому результаты в точности совпадают с поведением кода в Node.js, TypeScript, React или браузере — с поддержкой флагов g, i, m, s, u и y, именованных групп, lookbehind и Unicode. Шаблоны выполняются в фоновом воркере с ограничением времени, так что даже выражение с катастрофическим бэктрекингом не подвесит страницу. Готовые шаблоны для email, URL, IPv4-адресов, дат ISO, HEX-цветов и чисел помогут быстро начать, а встроенная шпаргалка объясняет самые важные конструкции. Ничего из введённого не загружается на сервер — всё работает локально.