Как тестировать регулярные выражения онлайн
Регулярные выражения — это один из самых мощных инструментов в программировании, и один из самых раздражающих в освоении. Тестировщик regex позволяет вам строить и отлаживать шаблоны интерактивно, а не выполнять ваш код, проверять вывод и угадывать, что не так.
Зачем использовать тестировщик regex
Написание regex в вашем редакторе означает, что вы видите ошибки только во время выполнения. Тестировщик показывает вам:
- Живое выделение — точно увидеть, какие части вашего текста соответствуют, по мере набора шаблона
- Группы захвата — увидеть, что захватывает каждая группа, без написания отладки
- Детали совпадений — точные позиции, длины и содержимое каждого совпадения
- Предпросмотр замены — увидеть результат поиска-замены перед его применением
Как тестировать regex онлайн
- Введите ваш шаблон — введите regex в поле шаблона. Включите флаги (g для глобального, i для нечувствительного к регистру, m для многострочного) по необходимости.
- Вставьте ваш тестовый текст — введите текст для тестирования. Совпадения выделяются в реальном времени.
- Просмотрите результаты — увидьте все совпадения с группами захвата, перечисленными ниже. Используйте поле «Заменить на», чтобы тестировать замены.
Распространённые regex-шаблоны для знания
Email-адрес (базовый):
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
URL:
https?://[^\s]+
Номер телефона (US):
\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}
Дата (ГГГГ-ММ-ДД):
\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])
IP-адрес (IPv4):
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
Советы для написания лучших regex
- Начинайте просто — сначала получите базовый шаблон, который работает, добавляйте сложность потом. Попытка написать идеальный regex с первого раза редко работает.
- Используйте флаг global (g) — без него тестировщик останавливается на первом совпадении. С
gвы видите все совпадения в тексте. - Тестируйте крайние случаи — ваш regex может соответствовать очевидным случаям и проваливаться на пустых строках, специальных символах или граничных условиях. Добавляйте их в ваш тестовый текст.
- Экранируйте специальные символы —
.,*,+,?,(,),[,],{,},\,^,$и|имеют специальное значение в regex. Чтобы соответствовать им буквально, префиксируйте их обратной косой чертой. - Используйте незахватывающие группы — если вам нужны скобки для группировки без захвата, используйте
(?:...), а не(...). Это сохраняет ваши результаты чище.
Часто задаваемые вопросы
Будет ли мой regex работать в других языках программирования?
Большая часть синтаксиса regex общая для JavaScript, Python, Java, PHP и других. Базовые шаблоны (классы символов, квантификаторы, якоря) работают везде. Некоторые продвинутые функции, такие как lookbehinds или именованные группы, различаются между языками.
Отправляются ли мои тестовые данные на сервер?
Нет. Всё сопоставление происходит локально в вашем браузере с нативным RegExp-движком JavaScript. Ничего никуда не отправляется.
Можно ли тестировать замены?
Да. Введите шаблон замены (используя $1, $2 и т. д. для групп захвата), чтобы увидеть результат поиска-замены в реальном времени.
Работает ли это офлайн?
Да. После загрузки страницы инструмент работает полностью в вашем браузере без подключения к интернету.