Как тестировать регулярные выражения шаг за шагом
Быстрый ответ
Чтобы тестировать regex: откройте Regex Tester, введите паттерн в regex-поле, введите тестовый текст и match подсветятся мгновенно. Инструмент показывает позиции match, capture groups и поддерживает flags (g, i, m, s, u). Вся обработка локально.
Введение
Regular expression (regex) — паттерн для match, search или replace текста. Regex мощный, но печально известен трудностью чтения и отладки —один неправильный символ может полностью изменить смысл. Tester regex позволяет экспериментировать с паттернами, видеть match подсвеченными и inspect capture groups.
Шаг за шагом
-
Откройте инструмент проверки регулярных выражений.
Перейдите на страницу инструмента Regex Tester. Инструмент имеет поля для шаблона регулярного выражения, флагов и тестового текста.
-
Введите шаблон регулярного выражения
Введите шаблон регулярного выражения (без косых черт). Например, \d+ соответствует одной или нескольким цифрам, [A-Z]\w+ соответствует слову, написанному с заглавной буквы. Инструмент анализирует шаблон по мере ввода.
-
Установите флаги
Выберите флаги: g (глобальный — найти все совпадения), i (без учета регистра), m (многострочный — ^ и $ соответствуют границам строк), s (точечный — . соответствует символу новой строки), u (Юникод). В большинстве тестов используется g, а иногда и i.
-
Введите тестовый текст
Вставьте или введите текст, который вы хотите протестировать. Инструмент применяет регулярное выражение и мгновенно выделяет все совпадения в тексте.
-
Просмотр совпадений и захват групп
Инструмент показывает каждое совпадение с его позицией и содержанием. Если в вашем шаблоне есть группы захвата (круглые скобки), отображается содержимое каждой группы. Используйте это, чтобы выяснить, почему шаблон соответствует (или не соответствует) ожидаемому.
Примеры
Сопоставьте все шаблоны, подобные электронной почте
Вход: Pattern: [a-z]+@[a-z]+\.[a-z]+, Flags: gi, Text: 'Contact alice@example.com or Bob@TEST.ORG'
Выход: Соответствует: «alice@example.com», «Bob@TEST.ORG».
Извлечение чисел с помощью групп захвата
Вход: Шаблон: (\d+)-(\d+), Флаги: g, Текст: «Заказ 123-456 и 789-012».
Выход: Матч 1: «123-456» (группа 1: «123», группа 2: «456»)
Матч 2: «789-012» (группа 1: «789», группа 2: «012»)
Проверка формата даты
Вход: Pattern: ^\d{4}-\d{2}-\d{2}$, Flags: none, Text: '2026-09-02'
Выход: Соответствие: '2026-09-02' (полное совпадение строки)
Распространенные проблемы
- Забываем экранировать специальные символы — такие символы, как ., *, +, ?, ^, $, (, ), [, ], {, }, |, \ являются специальными. Используйте \, чтобы буквально избежать их.
- Жадное и ленивое сопоставление —* и + являются жадными (соответствуют как можно большему числу). Добавлять ? для ленивого сопоставления (например, .*? соответствует как можно меньшему количеству совпадений).
- Катастрофический возврат (ReDoS) — некоторые шаблоны с вложенными кванторами могут требовать экспоненциального времени для определенных входных данных. Тестируйте с реалистичными входными данными и следите за тайм-аутами.
- Привязка — без ^ и $ шаблон соответствует любому месту строки. Используйте ^...$, чтобы сопоставить всю строку.
Советы
- Начните с простого шаблона и постепенно добавляйте сложность — отладка сложного регулярного выражения одновременно очень сложна.
- Используйте именованные группы захвата (?<имя>...) для удобства чтения — имена групп проясняют намерение, чем нумерованные группы.
- Протестируйте как совпадающие, так и несовпадающие входные данные, чтобы убедиться, что ваш шаблон не соответствует слишком сильно.
- Используйте наш тестер регулярных выражений для мгновенного частного тестирования — ваши шаблоны и текст никогда не покинут ваш браузер.