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

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

Тестирование регулярных выражений в реальном времени с подсветкой совпадений и отображением групп захвата. Бесплатный онлайн-отладчик regex, работает 100% в браузере.

Флаги
Режим
Предпросмотр
Результаты
Введите regex-шаблон выше.
Краткий справочник по regex
ШаблонОписание
.Любой символ (кроме новой строки)
^Начало строки / строчки
$Конец строки / строчки
*0 или более повторений
+1 или более повторений
?0 или 1 (необязательный)
{n}Ровно n повторений
{n,m}От n до m повторений
\dЦифра [0-9]
\DНе цифра
\wСимвол слова [a-zA-Z0-9_]
\WНе символ слова
\sПробельный символ
\SНе пробельный символ
\bГраница слова
[abc]Класс: a, b или c
[^abc]Отрицание: не a, b или c
(abc)Группа захвата
(?:abc)Группа без захвата
(?<n>abc)Именованная группа "n"
a|bАльтернатива: a или b

Что такое регулярное выражение?

Регулярное выражение (regex) — это последовательность символов, задающая шаблон поиска. Regex используется практически в каждом языке программирования и инструменте — от валидации форм в JavaScript до парсинга логов в Python и поиска с заменой в текстовых редакторах. Шаблон сочетает литеральные символы, метасимволы (. ^ $ * + ? { } [ ] | ( )) и символьные классы (\d цифра, \w символ слова, \s пробельный символ). Этот инструмент использует движок regex ECMAScript (тот же, что в JavaScript, TypeScript и Node.js).

Флаги regex

gглобальный: найти все совпадения, а не только первое. Необходим для подсчёта вхождений или замены каждого экземпляра.
iбез учёта регистра: сопоставление заглавных и строчных букв взаимозаменяемо. /hello/i совпадает с «Hello», «HELLO» и «hello».
mмногострочный: ^ и $ сопоставляются с началом и концом каждой строки, а не только всей строки. Критично для построчного парсинга логов.
sdotAll: метасимвол . также совпадает с символами переноса строки. Без этого флага . останавливается на переносах строк.

Группы захвата

Группы захвата (pattern) захватывают совпавшую подстроку для извлечения или обратной ссылки. Именованные группы (?<name>pattern) присваивают читаемое имя захвату, доступному через match.groups.name — гораздо понятнее нумерованных групп в сложных шаблонах. Группы без захвата (?:pattern) группируют без захвата — полезно для применения квантификаторов к последовательности без создания лишнего захвата. Обратные ссылки вроде $1, $2 в строках замены обращаются к захваченному тексту по номеру группы.

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

Все сопоставления выполняются 100% в вашем браузере. Никакие данные не отправляются на сервер.