Utils365

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

Напишите регулярное выражение и сразу смотрите, что оно находит.

Введите шаблон без слешей или вставьте целиком /pattern/flags.

Вставьте текст, откройте файл или перетащите его сюда

Шпаргалка
\d
Цифра, 0–9
\w
Буква, цифра или подчёркивание
\s
Пробел, табуляция или перенос строки
.
Любой символ, кроме переноса строки
^
Начало текста (или строки, с m)
$
Конец текста (или строки, с m)
*
Предыдущий элемент 0 или более раз
+
Предыдущий элемент 1 или более раз
?
Предыдущий элемент, необязательно
{n,m}
Предыдущий элемент от n до m раз
[abc]
Любой один из a, b или c
(…)
Группа, захватывается как $1, $2, …
(?<name>…)
Именованная группа, захватывается как $<name>
a|b
Либо левая часть, либо правая

Далее: Сравнение текстов · Форматтер JSON

Сообщить о проблеме с этим инструментом

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

  1. Введите шаблон

    Введите регулярное выражение без слешей или вставьте целиком /pattern/flags и отметьте нужные флаги.

  2. Добавьте тестовый текст

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

  3. Замените или скопируйте

    Отметьте «Заменить», чтобы попробовать замену с $1 или $<name>, затем скопируйте результат или само выражение.

Почему стоит использовать Utils365

  • Группы с первого взгляда

    У каждого совпадения видны нумерованные и именованные группы, так что легко проверить, что окажется в $1 или $<year>.

  • Защита от зависающих шаблонов

    Поиск идёт в фоне с лимитом в одну секунду, поэтому шаблон с бесконечным перебором не заморозит страницу.

  • Тот же движок, что и в вашем коде

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

  • Конфиденциально по умолчанию

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

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

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

JavaScript (ECMAScript), как в браузерах и Node.js. Большинство шаблонов работают так же и в других языках, но lookbehind, именованные группы и некоторые экранирования отличаются в старых движках.

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

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

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

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

Почему шаблон выполнялся слишком долго?

Некоторые шаблоны, например (a+)+ на длинной строке, перебирают огромное число вариантов, прежде чем сдаться. Это называется катастрофическим возвратом (backtracking). Чтобы это исправить, сделайте вложенные повторы конкретнее.

Почему я вижу только одно совпадение?

Без флага g регулярное выражение останавливается на первом совпадении. Отметьте «Глобально (g)», чтобы найти все.

Как найти буквальную точку или скобку?

Поставьте перед ней обратную косую черту: \. находит точку, а \[ — скобку. То же касается других специальных символов, таких как * + ? ( ) { } | ^ и $.