Проверяйте регулярные выражения с анимированной подсветкой.
Последнее обновление
Флаги
//g
Тестовая строкаВставьте текст, чтобы начать
Вставьте или введите текст для проверки…
СовпаденияНет совпадений
Совпадения появятся здесь — индексы, группы захвата и счётчики, вживую.
Что такое regex tester?
Regex tester — это инструмент, в котором вы пишете регулярное выражение и сразу видите, что оно находит в тестовом тексте. Регулярки нужны разработчикам для валидации форм, извлечения данных из строк, поиска по логам, очистки текста, написания команд в редакторах и правил поиска и замены.
Поначалу regex кажется чем-то магическим: пара символов вмещает в себя огромный смысл. Но живой тестер снимает это ощущение — каждое нажатие клавиши обновляет подсветку совпадений и групп захвата, и вы спокойно экспериментируете, пока шаблон не начнёт делать ровно то, что нужно.
Разные языки используют немного разные движки регулярных выражений (JavaScript, PCRE, Python, Java, Go, .NET). Базовые вещи — символы, символьные классы, квантификаторы, якоря и группы — работают везде одинаково. Расхождения начинаются на продвинутом уровне: lookbehind, именованные группы, посессивные квантификаторы и т. п.
Что вы поймёте, пока тестируете regex
Шаблон описывает *форму* текста, а не его смысл. \d+ найдёт подряд идущие цифры, но не оценит, имеет ли получившееся число смысл.
Флаги меняют поведение: g ищет все совпадения, i игнорирует регистр, m заставляет ^ и $ срабатывать на концах строк, s разрешает . совпадать с переносами.
Группы захвата (...) извлекают части совпадения, а не просто проверяют строку целиком — без них не разобрать данные.
Как пользоваться regex tester по шагам
1
Введите шаблон
Напишите регулярное выражение в поле для шаблона. Слэши / по краям не нужны — это синтаксис литерала в JavaScript, к самому шаблону он не относится.
2
Включите нужные флаги
Чаще всего пригодятся g (искать все совпадения) и i (без учёта регистра). m нужен для построчных якорей, а s — чтобы . совпадал и с переносами строк.
3
Вставьте тестовый текст
Положите в поле текста образец данных. Совпадения подсвечиваются по мере ввода, а группы захвата выводятся под списком совпадений.
4
Изучите панель совпадений
Для каждого совпадения видно его позицию, полный текст и все захваченные группы. Так вы проверяете, что шаблон ловит нужное и не цепляет лишнего.
5
Доработайте до точного результата
Сужайте квантификаторы, добавляйте якоря (^, $), экранируйте литеральные символы (\., \?) — пока совпадения и группы не станут именно такими, какими их ждёт ваш код.
Шпаргалка по regex
Те 80% синтаксиса, которые покрывают 99% задач. Сохраните в закладки — это самый быстрый способ освежить память. Полная грамматика — в руководстве MDN по регулярным выражениям.
Токен
Значение
Пример
.
Любой одиночный символ (кроме переноса строки)
a.c совпадает с abc, a-c
\d\D
Цифра / не цифра
\d+ совпадает с 123
\w\W
Символ слова (буква/цифра/_) / не символ слова
\w+ совпадает с hello_1
\s\S
Пробельный символ / не пробельный
\s+ ловит пробелы и табы
[abc]
Любой из a, b или c
[aeiou] совпадает с гласной
[^abc]
Ни a, ни b, ни c
[^0-9] ловит всё, кроме цифр
*+?
0+, 1+, 0 или 1 раз для предыдущего
a+ совпадает с a, aaa
{n}{n,m}
Ровно n раз / от n до m раз
\d{3,5} — от 3 до 5 цифр
^$
Начало / конец строки (или строки текста с m)
^Error — строка начинается с Error
(...)
Группа захвата
(\d+) захватывает цифры
(?:...)
Группа без захвата
(?:foo|bar) — группировка без захвата
a|b
Альтернатива — a или b
yes|no
\b
Граница слова
\bcat\b ловит cat, но не cats
Примеры regex для практики
Простая проверка формы email
Шаблон
^[\w.+-]+@[\w-]+\.[\w.-]+$
Текст
learner@coddy.tech
Шаблон ловит базовую структуру что-то@что-то.что-то. Настоящая валидация email допускает гораздо больше вариантов — на формах лучше использовать type="email" плюс проверку на сервере.
Достать все числа из предложения
Шаблон
\d+
Текст
Lesson 12 has 3 tasks and 2 quizzes.
С флагом g шаблон находит каждую группу цифр: 12, 3, 2. \d+ — это regex-эквивалент фразы «одна или больше цифр подряд».
Вытащить id из URL с помощью группы захвата
Шаблон
/users/(\d+)
Текст
/users/42/profile
Полное совпадение — /users/42, а группа захвата (\d+) отдельно достаёт 42. Именно через группы захвата результат регулярки реально *используется* в коде.
Жадные и ленивые квантификаторы
Жадный
<.+>
Ленивый
<.+?>
Текст
<b>hello</b>
Жадный вариант захватывает всю строку <b>hello</b> целиком, потому что .+ берёт максимум возможного. Ленивый (+?) останавливается на первом > и совпадает отдельно с <b> и </b>.
Типичные ошибки при работе с regex
Забывать экранировать спецсимволы: ., ?, +, (, ), [, ], {, }, \, ^, $, |. Если они нужны буквально — ставьте перед ними \.
Шаблон отлично работает на одном примере и ломается на реальных данных с лишними пробелами, переносами строк или пустыми полями.
Жадный .* берёт намного больше, чем нужно — переходите на .*? или используйте более конкретный символьный класс.
FAQ по regex
Что такое regex?
Regex — сокращение от *regular expression*, регулярное выражение. Это компактный язык шаблонов для поиска и сопоставления текста. Та же концепция есть практически в любом языке программирования, во многих редакторах и консольных утилитах.
Как написать regex?
Начните с тех символов, которые должны совпадать буквально, а изменчивые части замените символьными классами (\d, \w, [abc]) и квантификаторами (*, +, ?, {n,m}). Дальше открывайте regex tester и итеративно правите шаблон, пока он не начнёт ловить ровно нужные случаи.
Что означает \w в regex?
\w совпадает с символом слова — буквой, цифрой или подчёркиванием. \W — обратное (любой символ, не входящий в слово). Точный набор символов зависит от движка и от того, включён ли Unicode-флаг.
Почему мой regex захватывает слишком много?
Квантификаторы по умолчанию жадные — .* берёт максимум возможного. Используйте ленивый вариант (.*?) или более узкий символьный класс, чтобы остановиться там, где нужно.
Regex в JavaScript такой же, как везде?
Базовый синтаксис одинаковый, но движки отличаются. JavaScript, PCRE, Python re, Java, Go и .NET поддерживают разные наборы флагов и продвинутых возможностей (поддержка lookbehind, именованные группы, посессивные квантификаторы).
Стоит ли новичкам учить regex?
Да — постепенно. Начните с литералов, символьных классов, квантификаторов, якорей, флагов и групп захвата. Lookaround, именованные группы и условные конструкции оставьте на потом.