Шпаргалка и визуализатор регулярных выражений
Изучите символы регулярных выражений, разберите шаблон на понятные части и проверьте его на своём тексте. Всё работает в вашем браузере.
Шпаргалка
. Любой символ, кроме перевода строки Пример: a.c\d Цифра (0-9) Пример: \d+\D Любой символ, кроме цифры Пример: \D+\w Символ слова (a-z, A-Z, 0-9, _) Пример: \w+\W Любой символ, кроме символа слова Пример: \W+\s Пробельный символ Пример: \s+\S Любой символ, кроме пробельного Пример: \S+^ Начало текста Пример: ^hello$ Конец текста Пример: world$\b Граница слова Пример: \bword\b\B Позиция, которая не является границей слова Пример: \Bword\B[abc] Набор символов Пример: [abc]+[^abc] Отрицаемый набор Пример: [^abc]+[a-z] Набор символов Пример: [a-z0-9]+(abc) Захватывающая группа Пример: (abc)(?:abc) Группа без захвата Пример: (?:abc)+(?<n>) Именованная группа Пример: (?<year>\d{4})\1 Обратная ссылка Пример: (\w)\1a|b Выбор из вариантов Пример: cat|dog? Необязательно (0 или 1) Пример: colou?r* Повтор 0 или более раз Пример: a*+ Повтор 1 или более раз Пример: a+{m,n} Повтор заданное число раз Пример: a{2,4}+? То же самое, но как можно короче Пример: <.+?>(?=) Только если далее идёт Пример: foo(?=bar)(?!) Только если далее не идёт Пример: foo(?!bar)(?<=) Только если перед этим стоит Пример: (?<=\$)\d+(?<!) Только если перед этим не стоит Пример: (?<!\$)\d+\. Считать следующий символ буквальным Пример: 3\.14\n Перевод строки Пример: line\n\t Табуляция Пример: \tindentedЧастые шаблоны проверки
| Назначение | Шаблон | Описание | Подходит к |
|---|---|---|---|
| Адрес электронной почты | ^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$ | Проверяет обычный вид адреса электронной почты. | user@example.com |
| Номер телефона (США) | ^\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}$ | Подходит к десятизначным номерам с дефисами, пробелами, скобками или без них. | 123-456-7890 |
| Почтовый индекс (США) | ^\d{5}(-\d{4})?$ | Подходит к пятизначным и девятизначным индексам. | 90210-1234 |
| Дата (ГГГГ-ММ-ДД) | ^\d{4}-\d{2}-\d{2}$ | Подходит к простому числовому формату даты. | 2026-09-16 |
| IP-адрес (IPv4) | ^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$ | Подходит к виду адреса IPv4, не проверяя, что каждая часть лежит в пределах 0-255. | 192.168.1.1 |
Эти шаблоны проверяют вид значения, а не его существование. Адрес может идеально подходить под шаблон почты и всё равно никуда не вести, поэтому используйте их, чтобы рано ловить опечатки, но никогда как единственную проверку.
Что даёт этот инструмент
Компактный справочник символов регулярных выражений, разбор, превращающий шаблон в обычные предложения, и тестер, который показывает, что шаблон находит в вашем собственном тексте.
Когда пригодится
Когда вы пишете шаблон, когда читаете чужой шаблон или когда объясняете основы регулярных выражений коллеге. Прочитать шаблон вслух, часть за частью, — обычно именно это и помогает понять.
Ограничения
Разбор следует регулярным выражениям JavaScript, потому что именно их выполняет ваш браузер. Другие диалекты отличаются: PCRE, Python, Java и .NET добавляют свой синтаксис, а POSIX-утилиты вроде grep и sed используют более старый и скромный синтаксис. Тестер выполняет шаблон в отдельном потоке и останавливает его через несколько секунд, поэтому шаблон с бесконечным возвратом не может подвесить страницу.
Как пользоваться шпаргалкой
Найдите символ или вставьте шаблон и читайте его по частям.
- Просмотрите список символов или поищите нужный.
- Вставьте шаблон, чтобы увидеть его разбитым на части.
- Введите пример текста, чтобы увидеть, что действительно совпадает, и поправьте шаблон.
Частые вопросы
Отправляет ли этот инструмент мои шаблоны куда-либо?
Нет. И разбор, и поиск совпадений выполняются в вашем браузере, и ни шаблон, ни текст никуда не передаются.
Какому диалекту регулярных выражений он следует?
Диалекту JavaScript, ведь именно этот движок делает работу. Большая часть того, что здесь есть, — классы символов, группы, квантификаторы, якоря — одинакова во всех диалектах.
Можно ли проверить здесь мой шаблон?
Да. Введите текст в поле проверки, и совпадения будут выделены, а для каждого перечислены захваченные группы.
Почему мой шаблон был остановлен?
Некоторым шаблонам нужно экспоненциальное время на тексте, который почти подходит, — обычная причина в квантификаторе внутри другого квантификатора, например (a+)+b. Тестер сдаётся через несколько секунд вместо того, чтобы подвесить страницу, и сама эта остановка — полезное предупреждение: тот же шаблон остановил бы сервер.
Wikipedia — Regular expression
Wikipedia — PCRE
Wikipedia — Finite-state machine
Wikipedia — ReDoS
Wikipedia — Backtracking