Skip to main content
CheckTown
Инструменты разработчика

Тестирование regex: пишите и отлаживайте регулярные выражения мгновенно

Опубликовано 5 мин чтения
В этой статье

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

Регулярное выражение (regex или regexp) — это последовательность символов, задающая шаблон поиска. Регулярные выражения используются для поиска, сопоставления, извлечения, замены и валидации текста. Поддержка regex реализована нативно практически во всех языках программирования — это незаменимый инструмент любого разработчика.

Regex может быть как простым, например \d+ (одна или более цифр), так и сложным — с опережающими проверками, обратными ссылками и именованными группами. Несмотря на гибкость, сложные регулярные выражения трудно читать и поддерживать; тестер regex помогает создавать и проверять шаблоны в интерактивном режиме.

Как работает наш тестер regex

Тестер regex обеспечивает сопоставление в реальном времени с визуальной подсветкой по мере ввода.

  • Живое сопоставление — подсвечивает все совпадения в тестовой строке по мере ввода шаблона
  • Поддержка флагов — переключайте флаги global, case-insensitive, multiline и dotAll
  • Отображение групп захвата — показывает захваченные группы и именованные группы для сложных шаблонов

Попробуйте бесплатно — без регистрации

Тестировать регулярное выражение →

Когда использовать тестер regex

Тестер regex полезен всякий раз, когда нужно разработать или отладить шаблон перед его встраиванием в код.

  • Валидация форм — создавайте и тестируйте шаблоны для проверки email, телефона, почтового индекса или пользовательских полей ввода
  • Разбор логов — создавайте regex для извлечения полей из строк логов перед обработкой с помощью grep или awk
  • Извлечение данных — тестируйте шаблоны для скрапинга или разбора структурированных данных из текста или HTML

Частые вопросы

В чём разница между жадными и ленивыми квантификаторами?

Жадные квантификаторы (*, +, ?) захватывают как можно больше. Ленивые квантификаторы (*?, +?, ??) захватывают как можно меньше. Например, для строки <a>text</a> шаблон <.*> совпадёт со всей строкой (жадно), а <.*?> — только с <a> (лениво). Ленивые квантификаторы необходимы при разборе HTML или вложенных структур.

Как сопоставить буквальную точку или другой специальный символ в regex?

Экранируйте символ обратным слешем: \. соответствует буквальной точке, \* — буквальной звёздочке. Специальные символы, требующие экранирования: . * + ? ^ $ { } [ ] | ( ) \. Если нужно сопоставить любой из них буквально, всегда ставьте перед ним \.

Почему мой regex работает по-разному в JavaScript и Python?

Разные языки реализуют несколько отличающиеся диалекты regex. Основные отличия: Python использует (?P<name>) для именованных групп, а JavaScript — (?<name>); поддержка просмотра назад varies; некоторые возможности, такие как \K (keep), есть в PCRE, но не в JavaScript. Всегда тестируйте regex в контексте целевого языка.

Похожие инструменты