Тестирование регулярных выражений в реальном времени
Регулярные выражения — мощный инструмент, но их синтаксис бывает сложно читать. Этот тестер регулярных выражений показывает работу шаблона прямо во время ввода: каждое совпадение подсвечивается в тексте, подсчитывается и выводится в список с указанием позиции и групп захвата. Предпросмотр замены позволяет увидеть результат поиска с заменой до применения в коде. Все вычисления выполняются локально в браузере, в фоновом потоке (worker), что защищает страницу от зависания из-за «тяжелых» шаблонов.
Возможности
- Подсветка в реальном времени всех совпадений в тестовой строке.
- Переключатели флагов
g,i,m,sиuс отображением полного литерала/pattern/flags. - Таблица совпадений с индексами, нумерованными и именованными группами захвата.
- Предпросмотр замены с поддержкой
$1,$<name>,$&и других шаблонов подстановки. - Понятные сообщения об ошибках при неверном синтаксисе и секундный таймаут для защиты от катастрофического возврата (catastrophic backtracking).
Практическое применение
Валидация ввода. Создавайте и проверяйте регулярные выражения для почтовых индексов, артикулов или имен пользователей на списке правильных и неправильных примеров перед добавлением в форму.
Извлечение данных. Находите email-адреса, URL, даты или ID в логах и документах. Группы захвата позволяют разбить каждое совпадение на части, например, на имя пользователя и домен.
Поиск и замена. Меняйте формат дат с MM/DD/YYYY на YYYY-MM-DD, переименовывайте переменные или очищайте экспортированные данные. Проверьте результат замены здесь, а затем используйте готовый шаблон в своем редакторе или скрипте.
Изучение регулярных выражений. Экспериментируйте с квантификаторами, символьными классами и якорями, мгновенно наблюдая за результатом.
Краткий справочник
| Синтаксис | Значение |
|---|---|
. |
Любой символ, кроме переноса строки (любой символ с флагом s) |
\d \w \s |
Цифра, символ слова, пробельный символ |
[abc] [^abc] |
Один из / ни один из указанных символов |
* + ? |
0 или более, 1 или более, 0 или 1 |
{2,5} |
От 2 до 5 раз |
^ $ |
Начало и конец текста (каждой строки с флагом m) |
(…) (?<name>…) |
Группа захвата, именованная группа |
(?:…) |
Группа без захвата |
(?=…) (?!…) |
Позитивный просмотр вперед, негативный просмотр вперед |
\b |
Граница слова |
По умолчанию квантификаторы жадные; добавьте ? (как в .*?), чтобы сделать их ленивыми. Чтобы затем очистить списки, попробуйте инструмент Удалить дубликаты строк или сравните текст до и после с помощью Сравнения текста.