Тестер регулярных выражений
Тестирование регулярных выражений в реальном времени с подсветкой совпадений и отображением групп захвата. Бесплатный онлайн-отладчик regex, работает 100% в браузере.
Краткий справочник по 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 — многострочный: ^ и $ сопоставляются с началом и концом каждой строки, а не только всей строки. Критично для построчного парсинга логов.
s — dotAll: метасимвол . также совпадает с символами переноса строки. Без этого флага . останавливается на переносах строк.
Группы захвата
Группы захвата (pattern) захватывают совпавшую подстроку для извлечения или обратной ссылки. Именованные группы (?<name>pattern) присваивают читаемое имя захвату, доступному через match.groups.name — гораздо понятнее нумерованных групп в сложных шаблонах. Группы без захвата (?:pattern) группируют без захвата — полезно для применения квантификаторов к последовательности без создания лишнего захвата. Обратные ссылки вроде $1, $2 в строках замены обращаются к захваченному тексту по номеру группы.
Конфиденциальность
Все сопоставления выполняются 100% в вашем браузере. Никакие данные не отправляются на сервер.