RevealTheme logo

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

Тестируйте регулярные выражения JavaScript на любых входных данных. Просматривайте совпадения, группы и замены в реальном времени.

0 совпадение(й)

Как пользоваться этим инструментом

  1. 1

    Type your regular expression into the pattern field (no slashes — enter the bare pattern).

  2. 2

    Set the flags in the small field beside it, such as g, i, m, or a combination like gi.

  3. 3

    Paste or type the text you want to search into the large input box below.

  4. 4

    Read the match count and each matched substring with its character index in the results panel; an invalid pattern shows the engine's error message instead.

Что такое регулярные выражения и как их читать?

Регулярные выражения (regex) — это небольшой предметно-ориентированный язык для поиска шаблонов в тексте. В каждом современном языке программирования есть движок regex; этот инструмент использует встроенный RegExp из JavaScript, который следует спецификации ECMAScript 2018+ и поддерживает современные возможности, такие как lookbehind-утверждения, именованные группы захвата, экранирование свойств Unicode и флаг dotAll. Базовые элементы: литеральные символы совпадают сами с собой (regex 'gato' совпадает со словом gato); классы символов совпадают с любым из набора ('[a-z]' совпадает со строчными буквами); квантификаторы управляют повторением (* ноль или больше, + один или больше, ? ноль или один, {3,5} от 3 до 5); якоря совпадают с позициями (^ начало строки, $ конец, \b граница слова); группы захватывают подсовпадения ((gato|perro) совпадает с любым из них, фиксируя, какое именно); чередование предоставляет выбор. Regex отлично подходит для разбора структурированного, но не грамматического текста (логи, адреса электронной почты, телефонные номера, простые HTML-атрибуты) и не справляется с по-настоящему рекурсивными структурами (полный HTML, вложенный JSON). Для них используйте парсер. Этот тестер позволяет итеративно дорабатывать шаблон с мгновенной обратной связью: измените regex, и совпадения пересчитываются при каждом нажатии клавиши.

Типичные сценарии использования

  • Проверяйте формат пользовательского ввода (адреса электронной почты, номера телефонов, почтовые индексы) перед отправкой на сервер.

  • Извлекайте структурированные данные из файлов логов (метки времени, IP-адреса, коды состояния, пути запросов).

  • Выполняйте поиск и замену по сотням файлов с помощью поиска по регулярным выражениям в вашем редакторе.

  • Пишите правила перезаписи URL для Nginx, Apache .htaccess или rewrite-правил Vercel.

  • Разбирайте простые форматы, похожие на CSV, где полноценный парсер был бы избыточен.

  • Создавайте шаблоны проверки форм для атрибутов HTML <input pattern="...">.

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

Какие флаги поддерживаются?
g (global: находит все совпадения, а не только первое), i (без учёта регистра), m (multiline: ^ и $ совпадают с переносами строк), s (dotAll: . совпадает с переносами строк), u (unicode: корректная обработка многобайтовых символов), y (sticky: совпадение только в позиции lastIndex). Объединяйте флаги, записывая их подряд: 'gim' включает global + без учёта регистра + multiline.
Как выполнить совпадение по нескольким строкам?
Две разные потребности: 'm' заставляет ^ и $ совпадать с переносами строк (рассматривает каждую строку как отдельную строку для якорей). 's' заставляет . совпадать с переносами строк (иначе . совпадает со всем, кроме переносов строк). Используйте оба вместе, если нужно сопоставить шаблоны, охватывающие несколько строк.
В чём разница между жадными и ленивыми квантификаторами?
Жадные квантификаторы (*, +, {n,m}) совпадают с максимально возможным фрагментом. Ленивые (*?, +?, {n,m}?) совпадают с минимально возможным. Классический пример: regex '<.*>' для '<a><b>' совпадает со всем '<a><b>'; '<.*?>' совпадает только с '<a>'.
Когда НЕ следует использовать regex?
Когда структура по-настоящему рекурсивна (HTML, JSON, сбалансированные скобки). Когда нужно корректно обрабатывать каждый граничный случай (разбор дат с часовыми поясами, имён с апострофами). Когда грамматика входных данных чётко определена и существует библиотека для разбора. Известный ответ со Stack Overflow: regex прекрасно подходит для поиска шаблонов, но ужасен для разбора языков.
Что такое именованные группы захвата?
Вместо того чтобы (\d{4})-(\d{2})-(\d{2}) возвращал пронумерованные группы, используйте (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) и обращайтесь к совпадениям как match.groups.year. Гораздо удобнее в сопровождении реального кода.
Почему мой regex работает медленно на некоторых входных данных?
Катастрофический бэктрекинг. Вложенные квантификаторы вроде (a+)+ могут выполняться экспоненциальное время на враждебных входных данных. Избегайте вложенных квантификаторов и перекрывающихся чередований. У движка JavaScript нет тайм-аута, поэтому плохой regex может подвесить запрос. Для продакшена используйте npm-пакет safe-regex, чтобы выявлять рискованные шаблоны.
Совпадает ли это с тем, что делает мой серверный движок regex?
В основном да: основные разновидности regex (PCRE, re в Python, regex в Ruby, Java) похожи, но имеют тонкие различия. Синтаксис lookbehind, поведение классов символов и обработка Unicode различаются. Для паритета с продакшеном протестируйте это также на целевом языке.

Похожие инструменты

Декодировщик JWT

Мгновенно декодирует JSON Web Tokens (JWT). Работает в вашем браузере: токены никогда не покидают ваше устройство, поэтому им безопасно пользоваться с продакшен-секретами.

Форматировщик и валидатор JSON

Форматируйте, проверяйте и минифицируйте JSON онлайн. Работает полностью в вашем браузере: ваши данные никогда не покидают ваше устройство.

Форматировщик XML

Форматирует и делает читаемыми документы XML. Полезно для SOAP, карт сайта, RSS-лент и файлов конфигурации.

Кодировщик и декодировщик Base64

Кодирует строки в Base64 или декодирует Base64 в текст. Уважает вашу конфиденциальность: всё выполняется в вашем браузере.

Кодировщик и декодировщик URL

Преобразует текст в безопасную для URL кодировку (процентное кодирование) и обратно. Полезно для строк запроса, перенаправлений и OAuth-потоков.

Кодировщик и декодировщик HTML-сущностей

Преобразует специальные символы в HTML-сущности (&amp;, &lt; и т. д.) и обратно. Полезно для безопасной вставки текста в HTML.

Подпишитесь на обновления

Мы не продаем ваш адрес электронной почты. Мы не рассылаем спам.

© 2026 RevealTheme. All rights reserved.