Glyph WidgetsGlyph Widgets
ИнструментыО проектеКонтактыБлогКонфиденциальностьУсловияУбрать рекламуПоддержать на Ko-fi

© 2026 Glyph Widgets LLC. Все права защищены.

·

100% обработка на стороне клиента

Вернуться в блог

Тестер Regex: проверка паттернов с совпадениями

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

Glyph Widgets
27 февраля 2026 г.
9 мин чтения
тестер regexregex онлайнтестер регулярных выраженийотладчик regexвалидатор regex

Что такое Тестер Regex?

Тестер Regex — это бесплатный браузерный инструмент для написания, тестирования и отладки регулярных выражений с обратной связью в реальном времени. Он решает главную проблему разработки regex: нельзя знать, правилен ли паттерн, пока не протестируешь его на реальном тексте — а цикл редактирование-запуск-проверка в большинстве сред медленный и фрагментированный.

Введите паттерн, и он мгновенно вычисляется. Совпадения подсвечиваются прямо в тестовой строке, группы захвата извлекаются и маркируются, позиции символов сообщаются для каждого совпадения, а режим замены позволяет предпросматривать подстановки до включения их в рабочий код. Поддерживаются все шесть флагов JavaScript regex. Доступна библиотека из 49 готовых паттернов, организованных по категориям. Инструмент работает полностью в браузере — ваши паттерны и тестовые данные никуда не передаются.

Основные возможности

  • Живой поиск совпадений при вводе: Совпадения пересчитываются при каждом нажатии клавиши с использованием нативного движка RegExp JavaScript. Панель результатов обновляется без нажатия каких-либо кнопок.
  • Все флаги JavaScript regex (g, i, m, s, u, y): Каждый флаг — отдельный маркированный чекбокс: global, case-insensitive, multiline, dotAll, unicode, sticky. Активные флаги отображаются в реальном времени рядом с полем ввода паттерна, отражая нотацию /паттерн/флаги из JavaScript-кода.
  • Подсветка совпадений в тестовой строке: Панель «Подсвеченные совпадения» отображает вашу тестовую строку, где каждое совпадение обёрнуто в элемент <mark> с фоном основного цвета. Текст без совпадений отображается без стилей. Панель показывает живой счётчик совпадений.
  • Извлечение групп захвата: Панель «Детали совпадений» появляется при наличии совпадений. Каждая запись показывает полный текст совпадения, позиции начала и конца символов, а также маркированный список групп захвата ($1, $2 и т.д.). Группы без содержимого помечаются как «пустые».
  • Счётчик и позиции совпадений: Каждая запись в панели деталей показывает точный index и index + match.length, что напрямую соответствует свойству index у RegExpExecArray в JavaScript.
  • Режим замены с подстановкой: Переключаемая секция замены принимает строку замены и показывает полный результат подстановки. Поддерживает обратные ссылки ($1, $2). Результат можно скопировать в буфер обмена.
  • Библиотека распространённых regex-паттернов: Доступная для поиска библиотека из 49 паттернов в 8 категориях: Валидация, Даты и время, Числа, Веб и сети, Файлы и пути, Код, Текст и Идентификаторы. Нажатие «Use Pattern» загружает паттерн в поле ввода.

Как использовать Тестер Regex

Шаг 1: Введите паттерн

Введите регулярное выражение в поле ввода паттерна. Поле отображается с разделителями / с обеих сторон, визуально указывая формат regex. Вам не нужно включать слэши в то, что вы вводите — только тело паттерна.

Если в паттерне есть синтаксическая ошибка (например, незакрытая группа или недопустимая escape-последовательность), под полем ввода сразу появляется красное сообщение об ошибке с точным текстом из конструктора RegExp JavaScript. Неработоспособный паттерн нельзя запустить, но сообщение об ошибке точно указывает, что именно не так.

Шаг 2: Установите флаги

Под полем ввода паттерна расположены шесть чекбоксов флагов. По умолчанию активирован флаг g (global). Переключайте флаги, кликая по их чекбоксам:

  • g (global): находить все совпадения, а не только первое
  • i (case-insensitive): считать верхний и нижний регистры эквивалентными
  • m (multiline): сопоставлять ^ и $ с началом и концом каждой строки, а не всей строки целиком
  • s (dotAll): . совпадает со символами новой строки в дополнение ко всем другим символам
  • u (unicode): включить полную поддержку Unicode; обязательно для паттернов с \p{} Unicode property escapes
  • y (sticky): сопоставлять только в текущей позиции в строке (lastIndex), не выполняя поиск вперёд

Строка активных флагов отображается в реальном времени рядом с полем паттерна: например, gi появится, если включены global и case-insensitive.

Шаг 3: Введите тестовую строку

Вставьте или введите текст для поиска совпадений в панели «Тестовая строка». Количество символов тестовой строки отображается в заголовке панели. Текстовое поле принимает многострочный ввод и меняет размер по вертикали.

Шаг 4: Читайте результаты совпадений

Панель «Подсвеченные совпадения» справа обновляется мгновенно. Каждая часть тестовой строки, соответствующая вашему паттерну, подсвечивается. В заголовке панели показывается общее количество совпадений.

Под двумя основными панелями появляется секция «Детали совпадений», в которой каждое совпадение перечислено отдельно:

  • Номер совпадения (с 1)
  • Совпавший текст в подсвеченном блоке кода
  • Позиции символов: начальный индекс и конечный индекс
  • Группы захвата, помеченные как $1, $2 и т.д.

Шаг 5: Используйте режим замены (по желанию)

Нажмите кнопку «Show Replace», чтобы открыть секцию замены. Введите строку замены в поле Replace With. Обратные ссылки работают: $1 вставляет содержимое первой группы захвата, $2 — второй и т.д. Панель «Результат» немедленно обновляется, показывая полный результат подстановки. Нажмите на иконку копирования, чтобы скопировать результат.

Шаг 6: Используйте библиотеку паттернов (по желанию)

Нажмите кнопку «Pattern Library», чтобы открыть доступную для поиска панель паттернов. Введите в поле поиска для фильтрации по названию, описанию или категории. Нажмите «Use Pattern» рядом с любой записью, чтобы загрузить её прямо в поле паттерна. Библиотека автоматически закрывается после выбора.

Практические примеры

Пример 1: Валидация email-адресов

Паттерн: ^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$

Флаги: g

Тестовая строка:

user@example.com
invalid-email
another@test.co.uk
@missing-local.com

Результат: Два совпадения — user@example.com и another@test.co.uk подсвечиваются. Две другие строки не дают совпадений.

Пример 2: Извлечение групп захвата из строк лога

Паттерн: (\d{4}-\d{2}-\d{2}) (\w+): (.+)

Флаги: gm

Тестовая строка:

2026-02-28 ERROR: Connection timeout after 30s
2026-02-27 INFO: Server started on port 3000

Детали совпадения 1:

  • Полное совпадение: 2026-02-28 ERROR: Connection timeout after 30s
  • $1: 2026-02-28
  • $2: ERROR
  • $3: Connection timeout after 30s

Пример 3: Замена с обратными ссылками на группы захвата

Паттерн: (\w+)\s(\w+) Заменить на: $2, $1 Тестовая строка: John Smith Результат: Smith, John

Демонстрация режима замены с использованием $1 и $2 для перестановки двух захваченных словесных групп.

Советы и лучшие практики

Включайте глобальный флаг для полноценного тестирования. С выключенным g сопоставление прекращается после первого результата. В процессе разработки обычно следует держать g включённым, чтобы видеть все потенциальные совпадения в тестовой строке и убеждаться в отсутствии неожиданных лишних совпадений.

Используйте флаг m (multiline), когда паттерн содержит ^ или $. Без m символ ^ соответствует только самому началу всей входной строки, а $ — только самому концу. С m они сопоставляются с началом и концом каждой строки, что почти всегда нужно при обработке многострочного ввода.

Защита от совпадений нулевой длины встроена. Когда глобальный флаг активен, цикл сопоставления проверяет совпадения нулевой длины и увеличивает lastIndex, чтобы предотвратить бесконечный цикл. Паттерны вроде a* или \b поэтому не зависнут браузер.

Копируйте паттерн в нотации /паттерн/флаги. Кнопка Copy Pattern записывает полный паттерн в буфер обмена в JavaScript-нотации, включая слэши и активные флаги — например /\d{4}-\d{2}-\d{2}/gm. Это можно вставить прямо в JavaScript-код.

Сохраняйте паттерны в Snippets. Кнопка Save to Snippets (видна рядом с Copy Pattern) сохраняет текущий паттерн — в формате /паттерн/флаги — в библиотеку Snippets, доступную через функции Glyph Widgets для сторонников. Это надёжнее, чем полагаться только на историю сессии.

Распространённые проблемы и их решение

Паттерн показывает красное сообщение об ошибке. Текст ошибки берётся напрямую из конструктора RegExp JavaScript и описывает причину. Распространённые ошибки: Invalid regular expression: missing ) (незакрытая группа захвата) и Invalid escape (обратный слэш перед символом, не являющимся допустимой escape-последовательностью без флага u). Читайте сообщение буквально — оно точно указывает проблему.

Ожидаемые совпадения не подсвечиваются. Проверьте, нужен ли флаг i для сопоставления без учёта регистра, или флаг m, если паттерн использует ^ или $ при многострочном вводе. Убедитесь, что паттерн не слишком жёстко заякорен — ^\d+$ совпадает только со строкой, состоящей исключительно из цифр, а не с цифрами внутри другого текста.

Группы захвата показывают «пустые». Группа захвата «пустая», когда группа участвует в совпадении, но подпаттерн совпал с нулём символов, или когда необязательная группа ((...)?) не участвовала. Это отличается от отсутствия группы в паттерне вообще.

Замена не использует обратные ссылки. Обратные ссылки в строке замены используют синтаксис $1, $2, $n. Использование \1 или %1 не работает — они недопустимы в String.prototype.replace JavaScript. Именованные группы используют синтаксис $<имя>.

Паттерн загружается из библиотеки, но не совпадает. Некоторые паттерны из библиотеки содержат якоря (^ и $) и предназначены для валидации целой строки, а не для поиска подстрок в большей тестовой строке. Если вы ищете паттерн внутри абзаца, удалите якоря или добавьте g без m, чтобы проверить, совпадает ли основной паттерн.

Конфиденциальность и безопасность

Вся оценка регулярных выражений в Тестере Regex выполняется в вашем браузере с использованием нативного движка RegExp JavaScript. Никакие паттерны, тестовые строки и результаты совпадений не передаются ни на какой сервер. Функция общей ссылки кодирует ваш паттерн и тестовую строку прямо в URL (только на стороне клиента), поэтому совместное использование ссылки не предполагает обращения к серверу. Инструмент работает в автономном режиме после первоначальной загрузки страницы.

Часто задаваемые вопросы

Тестер Regex бесплатный? Да, полностью бесплатный, без аккаунта, без регистрации и без ограничений использования.

Мои данные в безопасности? Ваши паттерны и тестовые строки никогда не покидают браузер. Всё сопоставление выполняется локально с помощью встроенного RegExp JavaScript. Инструмент не имеет серверного компонента, участвующего в процессе сопоставления.

Можно ли использовать его офлайн? Да. После загрузки страницы весь инструмент работает без подключения к интернету. Библиотека паттернов, движок сопоставления и режим замены — всё работает локально.

Какой диалект regex используется? Инструмент использует нативный движок RegExp JavaScript, реализующий спецификацию регулярных выражений ECMAScript. Поддерживается большинство общего синтаксиса regex, включая lookaheads, lookbehinds (в современном JS), группы захвата, не захватывающие группы, обратные ссылки и Unicode property escapes (с флагом u).

Поддерживаются ли опережающие и ретроспективные проверки? Да. Положительные lookaheads (?=...), отрицательные lookaheads (?!...), положительные lookbehinds (?<=...) и отрицательные lookbehinds (?<!...) — все поддерживаются движком JavaScript, используемым здесь, как часть спецификации ECMAScript 2018, поддерживаемой всеми современными браузерами.

Можно поделиться паттерном с кем-то? Да. Инструмент использует общее состояние, которое кодирует ваш паттерн, тестовую строку и флаги в URL. Скопируйте URL из адресной строки браузера и поделитесь им. Когда получатель откроет ссылку, всплывающее уведомление сообщит, что состояние было загружено из общей ссылки.

Сколько паттернов в библиотеке? Библиотека содержит 49 паттернов в 8 категориях: Валидация (10 паттернов, включая email, URL, телефон, UUID, пароль), Даты и время (5 паттернов), Числа (5 паттернов), Веб и сети (6 паттернов), Файлы и пути (5 паттернов), Код (6 паттернов), Текст (7 паттернов) и Идентификаторы (5 паттернов, включая кредитную карту, SSN, IBAN, ISBN-13 и IMEI).

В чём разница между флагами s (dotAll) и m (multiline)? Они влияют на разные вещи. Флаг s заставляет . совпадать с символами новой строки в дополнение ко всем другим символам. Без него . пропускает символы новой строки. Флаг m заставляет ^ и $ совпадать с началом и концом каждой строки, а не всей строки целиком. Они независимы — можно включить один, оба или ни одного.

Можно использовать Unicode property escapes, например \p{Letter}? Да, но флаг u должен быть включён. С активным u паттерны вроде \p{Lu} (заглавная буква) и \p{Script=Latin} поддерживаются современными браузерами. Без u последовательность \p трактуется как буквальный p.

Как сопоставлять несколько строк? Включите флаг s (dotAll), чтобы . совпадало с символами новой строки, затем используйте [\s\S]*? или просто .+ с активным s. Также включите m, если нужно, чтобы ^ и $ привязывались к началу и концу строк.

Связанные инструменты

  • JSON Formatter — Форматирование JSON для использования в качестве тестовых строк regex
  • Base64 Encoder/Decoder — Кодирование/декодирование текста для regex-тестирования
  • Diff Checker — Сравнение оригинального и заменённого текста рядом

Попробуйте Тестер Regex прямо сейчас: Тестер Regex

Последнее обновление: 27 февраля 2026 г.

Продолжить чтение

Ещё статьиПопробовать Regex Tester