Тестер регулярных выражений
Проверяйте регулярные выражения 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:Введите шаблон между слешами и включите нужные флаги или начните с одного из готовых шаблонов.
- Шаг 2:Вставьте тестовый текст. Совпадения сразу подсвечиваются и выводятся списком с позициями и группами захвата.
- Шаг 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-цветов и чисел помогут быстро начать, а встроенная шпаргалка объясняет самые важные конструкции. Ничего из введённого не загружается на сервер — всё работает локально.