Перейти к контенту
SPCXTools

Тестер регулярных выражений

Напишите регулярное выражение и мгновенно увидите все совпадения, группы захвата и результаты замены.

Работает локально — файлы не покидают ваше устройство

Загрузка инструмента…

Как использовать Тестер регулярных выражений

  1. 1Введите регулярное выражение в поле Шаблон — слеши не требуются.
  2. 2Выберите флаги, такие как g (найти все), i (без учета регистра) или m (многострочный режим).
  3. 3Вставьте текст для поиска в поле Тестовая строка. Совпадения мгновенно подсвечиваются и подсчитываются.
  4. 4В таблице можно посмотреть позицию каждого совпадения и группы захвата.
  5. 5Отметьте Заменить и введите строку замены, например $2: $1, чтобы увидеть результат работы String.replace.

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

Регулярные выражения — мощный инструмент, но их синтаксис бывает сложно читать. Этот тестер регулярных выражений показывает работу шаблона прямо во время ввода: каждое совпадение подсвечивается в тексте, подсчитывается и выводится в список с указанием позиции и групп захвата. Предпросмотр замены позволяет увидеть результат поиска с заменой до применения в коде. Все вычисления выполняются локально в браузере, в фоновом потоке (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 Граница слова

По умолчанию квантификаторы жадные; добавьте ? (как в .*?), чтобы сделать их ленивыми. Чтобы затем очистить списки, попробуйте инструмент Удалить дубликаты строк или сравните текст до и после с помощью Сравнения текста.

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

Какой диалект регулярных выражений использует этот тестер?
Он использует встроенный в браузер движок JavaScript (ECMAScript) — тот же, что работает в Node.js, Deno и фронтенд-коде. Большая часть синтаксиса совпадает с PCRE, Python и Java, но некоторые возможности отличаются: например, сверхжадные квантификаторы (не поддерживаются) и ретроспективные проверки (поддерживаются в современных браузерах).
Почему мое регулярное выражение находит только одно совпадение?
Без флага g (глобальный поиск) JavaScript останавливается на первом совпадении. Включите g, чтобы найти все совпадения в тексте.
Как сослаться на группы захвата при замене?
Используйте $1, $2 и так далее для нумерованных групп, $<name> для именованных групп вроде (?<year>\d{4}), $& для всего совпадения целиком и $$ для обычного знака доллара.
Что будет, если регулярное выражение работает слишком медленно?
Некоторые шаблоны, например (a+)+$, могут выполняться экспоненциально долго на определенных данных («катастрофический возврат»). Тестер запускает выражение в фоновом потоке и прерывает его через секунду, чтобы страница не зависала. Перепишите шаблон, избегая вложенных квантификаторов.
Что делают флаги s и u?
s (dotAll) позволяет . совпадать в том числе с переносами строк. u (unicode) обрабатывает шаблон и текст как кодовые точки Unicode, что необходимо для эмодзи и свойств \p{…}, таких как \p{L} (любая буква).
Мой текст загружается на сервер?
Нет. Поиск и замена выполняются локально в вашем браузере.