Перейти к содержимому
ToolMug

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

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

Работает в браузере — введённые данные никуда не загружаются

//g
Типовые шаблоны:
 
Contact: ada@example.com, grace.hopper@navy.mil
Servers: 10.0.0.1, 192.168.1.255
Date: 2026-09-26

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

  1. Введите шаблон между косыми чертами или начните с одного из типовых шаблонов.
  2. Переключайте флаги — g, i, m, s, u, y, — чтобы изменить поведение поиска.
  3. Вставьте тестовый текст. Совпадения подсвечиваются и выводятся списком с позицией и группами.
  4. Введите строку замены, например $1 или $<name>, чтобы увидеть результат поиска с заменой.

Описание параметров

g (глобальный)
Находит все совпадения, а не останавливается на первом. Список совпадений всегда показывает все; флаг g влияет на замену.
i (без учёта регистра)
Буквы совпадают независимо от регистра.
m (многострочный)
^ и $ совпадают с началом и концом каждой строки, а не всего текста.
s (dotAll)
Точка . совпадает также с переводами строк.
u (unicode)
Трактует шаблон как кодовые точки Unicode, что включает экранирование свойств \p{…} и корректную обработку эмодзи.
y (липкий)
Совпадает только точно в той позиции, где закончилось предыдущее совпадение.

Краткая шпаргалка

Синтаксис Что означает
\d \w \s Цифра, символ слова, пробельный символ
[abc] [^abc] [a-z] Один из, ни один из, диапазон
* + ? {2,5} 0+, 1+, 0 или 1, от 2 до 5
*? +? Ленивые — как можно меньше
^ $ \b Начало, конец, граница слова
(…) (?:…) (?<name>…) Захватывающая, незахватывающая, именованная группа
(?=…) (?!…) (?<=…) (?<!…) Позитивная и негативная опережающая проверка, позитивная и негативная ретроспективная проверка
\p{L} \p{Script=Han} Любая буква, китайские иероглифы (с флагом u)

Пример

Шаблон (?<user>[\w.+-]+)@(?<domain>[\w-]+(?:\.[\w-]+)+) на строке ada@example.com даёт user = ada и domain = example.com; замена $<domain>/$<user> даёт example.com/ada.

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

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

JavaScript (ECMAScript 2024) в реализации вашего браузера. Большая часть синтаксиса общая с PCRE, Python и Java, но ретроспективная проверка (lookbehind), именованные группы и Unicode-экранирование немного различаются в разных движках, поэтому тестируйте в том языке, который будете использовать.

Почему появилось сообщение, что шаблон остановлен?

Некоторые шаблоны, например (a+)+$ на длинной строке из букв a, заставляют движок перебирать экспоненциальное число комбинаций — это называется катастрофическим возвратом (catastrophic backtracking). Тестер работает в фоновом потоке и останавливается через 1,5 секунды. Перепишите вложенные квантификаторы или используйте более конкретные классы символов.

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

Используйте $1, $2… для нумерованных групп, $<name> для именованных, $& для всего совпадения и $$ для самого знака доллара.

Мой текст куда-то отправляется?

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

Конфиденциальность

Этот инструмент работает полностью в браузере. Ваши файлы и текст обрабатываются на вашем устройстве и никогда не загружаются на наши серверы.

Похожие инструменты