Тестер регулярных выражений
НовоеТестируйте регулярные выражения с подсветкой совпадений в реальном времени, группами захвата и предпросмотром замены.
Match highlight
Matches & groups
Replace
Regex cheatsheetquick reference
- \d \D
- digit / non-digit
- \w \W
- word char / non-word char
- \s \S
- whitespace / non-whitespace
- .
- any char (except newline without s flag)
- ^ $
- start / end of string (line with m flag)
- \b \B
- word boundary / non-boundary
- [abc] [^abc]
- char set / negated set
- [a-z0-9]
- char range
- a* a+ a?
- 0+ / 1+ / 0 or 1
- a{3} a{2,5} a{2,}
- exactly 3 / 2–5 / 2 or more
- a*? a+?
- lazy (non-greedy) quantifiers
- (abc)
- capture group → $1
- (?<name>abc)
- named group → $<name>
- (?:abc)
- non-capturing group
- a|b
- alternation (a or b)
- \1 \k<name>
- backreference
- (?=abc) (?!abc)
- lookahead / negative lookahead
- (?<=abc) (?<!abc)
- lookbehind / negative lookbehind
- \n \t \r
- newline / tab / carriage return
- \. \* \\
- escaped literal . * \
Runs entirely in your browser. Nothing is uploaded.
Тестирование регулярных выражений в реальном времени на JavaScript
Этот бесплатный тестер regex подсвечивает каждое совпадение сразу при вводе, используя настоящий движок регулярных выражений JavaScript вашего браузера — поэтому то, что совпадает здесь, точно совпадёт и в вашем фронтенд-коде или Node.js. Переключайте любой из шести флагов (g, i, m, s, u, y), а при ошибке в шаблоне отображается настоящее сообщение об ошибке движка — ничего не скрывается.
Под живой подсветкой вы получаете полный список совпадений — каждое совпадение с его позицией и всеми группами захвата, нумерованными и именованными — а также панель замены, которая показывает результат подстановок с обратными ссылками $1, $<name> и $& по мере ввода. Когда шаблон готов, нажмите Копировать как JavaScript, чтобы получить код, готовый для вставки.
Удобная альтернатива regex101.com и regexr.com
Такие инструменты, как regex101.com, поддерживают PCRE, Python, Golang и .NET вместе с JavaScript — это полезно при сравнении движков, но зачастую избыточно, когда нужно просто отладить JS-шаблон. regexr.com предлагает шаблоны сообщества и справочное руководство. Оба требуют навигации по нескольким вкладкам, чтобы перейти от результата совпадения к предварительному просмотру замены.
Этот онлайн тестер regex отвечает на три главных вопроса на одном чистом экране: есть ли совпадение, что было захвачено и каков результат замены? Никакого выбора движка, никакой регистрации, никакой загрузки файлов. В отличие от regexpal.com (который показывает только подсветку) или debuggex.com (который фокусируется на визуальных схемах), этот инструмент добавляет извлечение групп захвата для каждого совпадения и живой предварительный просмотр замены с поддержкой обратных ссылок.
Популярные шаблоны regex — в один клик
Встроенная библиотека вставляет проверенные шаблоны с реалистичными тестовыми строками: адрес email, URL, IPv4-адрес, ISO дата, время в 24-часовом формате, hex-цвет, URL slug, международный номер телефона, число (целое/дробное) и HTML-тег. Каждый шаблон загружается с корректными и некорректными примерами, чтобы вы точно видели границы его применимости.
Это отправные точки, а не эталон — меняйте их на месте и наблюдайте, как реагирует подсветка. Примеры намеренно включают граничные случаи (например, 999.999.1.1 для IPv4), чтобы вы понимали, что шаблон отвергает, а не только что принимает. Это намного быстрее, чем копировать шаблон со Stack Overflow и гадать, обработает ли он ваши крайние случаи.
Группы захвата, lookaround и все шесть флагов — полная поддержка
Современный JavaScript regex обладает мощными возможностями: именованные группы (?<year>\d{4}), lookahead (?=…) и lookbehind (?<=…), Unicode property escapes с флагом u и «прилипающий» поиск с флагом y. Этот тестер поддерживает всё это, поскольку он является движком JavaScript. Панель совпадений разбивает каждую группу по совпадению, поэтому логика извлечения проверяется с первого взгляда.
Особенно нагляден флаг m: с ним ^ и $ привязываются к началу и концу каждой строки вашего тестового текста — вставьте лог-файл и наблюдайте, как шаблон ^ОШИБКА подсвечивает каждую проблемную строку. Включите s, чтобы . совпадал с символами новой строки внутри многострочных строк без обходных путей. Каждый результат здесь — это именно то, что выдаст ваш код.
Изучайте regex быстрее со встроенной шпаргалкой
Раскрывающаяся шпаргалка по regex охватывает токены, которые используются чаще всего: классы символов (\d \w \s), якоря (^ $ \b), квантификаторы (* + ? {n,m} и их ленивые формы), группы, альтернация, обратные ссылки и все четыре вида lookaround. Держите её открытой во время экспериментов — видеть эффект токена в виде подсветки в реальном времени — лучший способ усвоить regex.
Начните с простого: совпадение с буквальным словом, добавьте класс символов, затем квантификатор, затем группу. Пять минут живой обратной связи на площадке для regex дадут больше, чем час чтения таблиц синтаксиса. Работает и на мобильных устройствах — интерфейс адаптируется для небольших экранов, так что вы можете отлаживать шаблоны на смартфоне без установки каких-либо приложений.
Frequently asked questions
Что такое тестер регулярных выражений?
Тестер регулярных выражений — это интерактивный инструмент, в котором вы вводите регулярное выражение и тестовый текст, и он мгновенно подсвечивает каждое совпадение. Этот тестер показывает значения групп захвата — нумерованных и именованных — поддерживает все шесть флагов JavaScript (g, i, m, s, u, y), предоставляет живой предварительный просмотр замены с обратными ссылками, библиотеку часто используемых шаблонов и полную шпаргалку. Вы можете отлаживать и проверять шаблоны перед использованием в коде — без установки чего-либо и без создания аккаунта.
Чем этот тестер отличается от regex101.com и regexr.com?
regex101.com и regexr.com — отличные инструменты, но они могут казаться перегруженными: несколько движков, полноценный отладчик, тесты, шаблоны сообщества. Этот тестер сосредоточен именно на движке JavaScript и отвечает на три вопроса, которые важны каждый день: есть ли совпадение, что было захвачено и каков результат замены? Он загружается мгновенно, сохраняет вашу работу локально, полностью работает в браузере и делится шаблонами через URL-ссылку — аккаунт не нужен. В отличие от regex101, который поддерживает PCRE, Python и Golang, этот инструмент использует нативный движок JavaScript вашего браузера, поэтому результаты точны.
Чем он отличается от regexpal.com и debuggex.com?
Regexpal предлагает простую подсветку, но не разбирает группы захвата и не показывает предварительный просмотр замены. Debuggex добавляет визуальные схемы, но не имеет библиотеки готовых шаблонов. Этот тестер добавляет извлечение групп захвата для каждого совпадения, живую панель замены с поддержкой обратных ссылок $1/$<name>/$& и встроенную библиотеку шаблонов с реалистичным тестовым текстом — при этом используя настоящий движок JavaScript, так что результаты точно соответствуют тому, что выдаст ваш код. Всё работает офлайн, загрузка файлов не требуется.
Что означает слово "regex"?
Regex — сокращение от "regular expression" (регулярное выражение) — строка символов, определяющая шаблон поиска. Регулярные выражения используются для поиска, извлечения, проверки и операций поиска-замены в тексте практически в каждом языке программирования и текстовом редакторе. Термин восходит к 1950-м годам и математику Стивену Клини, а широкое практическое использование regex приобрело с появлением языка Perl в 1980-х.
Как проверить регулярное выражение в JavaScript?
В JavaScript есть несколько вариантов: regex.test(str) для проверки true/false, str.match(regex) для получения совпавшего текста, str.matchAll(regex) для всех совпадений с деталями групп, или regex.exec(str) для перебора совпадений по одному. Этот тестер выполняет всё это в реальном времени по мере ввода — а кнопка «Копировать как JavaScript» даёт точный код для вашего шаблона, готовый для вставки в проект.
Что такое группа захвата в regex?
Скобки ( ) создают группу захвата, которая сохраняет всё совпавшее внутри них — извлекается как $1, $2 и т. д. Именованные группы, записанные как (?<name>...), позволяют обращаться к захватам по имени, а не по номеру. Группы захвата позволяют извлекать части совпадения — например, имя пользователя и домен из адреса email — или повторно использовать их в заменах. Панель совпадений в этом тестере перечисляет значение каждой группы для каждого совпадения, что позволяет легко проверить логику извлечения перед использованием в рабочем коде.
Что означают флаги regex g, i, m, s, u и y?
g (global) находит все совпадения вместо остановки на первом; i (ignoreCase) делает поиск нечувствительным к регистру; m (multiline) заставляет ^ и $ совпадать с началом и концом каждой строки, а не всей строки целиком; s (dotAll) заставляет точку совпадать и с символами новой строки; u (Unicode) включает полную поддержку Unicode и property escapes вида \p{Letter}; y (sticky) привязывает поиск к позиции lastIndex. Все шесть флагов переключаются в этом тестере одним кликом.
Регулярные выражения чувствительны к регистру по умолчанию?
Да — /привет/ совпадёт с «привет», но не с «Привет». Включите флаг i (ignoreCase), чтобы шаблон совпадал независимо от регистра букв. Это частый источник ошибок в логике валидации — например, regex для email, который не может совпасть с «User@Example.COM», потому что флаг i был забыт.
В чём разница между match, test и exec в JavaScript?
test() возвращает булево значение — используйте его, когда нужно просто знать, есть ли совпадение. match(), вызванный на строке, возвращает массив совпадений или null. exec(), вызванный на регулярном выражении, возвращает одно подробное совпадение за раз и продвигается по строке при установленном флаге g. matchAll() возвращает все совпадения с полными деталями групп за один вызов — это обычно правильный выбор для задач извлечения. Этот тестер использует matchAll «под капотом» и отображает все результаты на панели совпадений.
Что такое lookahead и lookbehind в regex?
Lookahead (?=...) проверяет, что определённый шаблон следует за текущей позицией, не потребляя символы; отрицательный lookahead (?!...) проверяет обратное. Lookbehind (?<=...) и (?<!...) делают то же самое для того, что стоит перед текущей позицией. Они полезны для условий вроде «найти число, за которым не следует знак процента» или «найти слово, перед которым стоит знак доллара». Все четыре вида lookaround работают в этом тестере, поскольку современный JavaScript (V8) поддерживает их в полном объёме.
Одинаковы ли регулярные выражения во всех языках программирования?
Нет — варианты regex существенно различаются. JavaScript, PCRE (используемый PHP и Perl), модуль re в Python, .NET, Java и Ruby поддерживают разный синтаксис и возможности. PCRE поддерживает посессивные квантификаторы и атомарные группы, которых нет в JavaScript; Python использует (?P<name>...) для именованных групп вместо (?<name>...); .NET добавляет балансирующие группы. Этот тестер использует настоящий движок JavaScript/V8, поэтому результаты точно соответствуют тому, что получит ваш фронтенд-код или Node.js.
Как использовать regex для поиска и замены текста?
В JavaScript str.replace(/шаблон/g, 'замена') заменяет каждое совпадение. Используйте $1 или $<name> в строке замены для вставки захваченных групп, и $& для всего совпадения целиком. Панель замены в этом тестере показывает результат подстановки в реальном времени по мере ввода, так что вы видите итог до того, как зафиксировать его в коде. Также можно использовать функцию в качестве аргумента замены для более сложных преобразований — например, для приведения каждого совпадения к верхнему регистру.
Что означают \d, \w и \s в regex?
\d совпадает с любой цифрой (0–9), \w — с символом слова (буква, цифра или подчёркивание), \s — с пробельным символом (пробел, табуляция, перевод строки). Их заглавные формы \D, \W и \S совпадают с противоположным — со всем, с чем не совпадают \d, \w и \s. Встроенная шпаргалка перечисляет эти и все другие распространённые токены с примерами. Классы символов — это строительные блоки большинства реальных шаблонов.
Почему мой regex захватывает слишком много текста (жадное совпадение)?
Квантификаторы вроде * и + по умолчанию жадные — они захватывают как можно больше текста, прежде чем уступить. Добавьте ? для ленивого режима (.*?), чтобы захватывать как можно меньше. Другой вариант — использовать отрицательный класс символов вроде [^"]* для остановки на определённом разделителе. Вставьте ваш текст в этот тестер, и вы увидите разницу между жадным и ленивым совпадением с подсветкой рядом — это самый быстрый способ понять, что происходит.
Этот тестер regex бесплатный? Можно ли поделиться шаблоном?
Бесплатно, без рекламы, без регистрации. «Копировать ссылку» кодирует ваш шаблон, флаги и тестовый текст в URL, так что коллега откроет именно то, что видите вы — аккаунт не нужен ни с одной стороны. Ваша работа также автоматически сохраняется локально в браузере, так что она будет на месте, когда вы вернётесь. В отличие от regex101, который требует входа для постоянного сохранения и обмена шаблонами, этот инструмент даёт общую ссылку мгновенно.
Related tools
Все инструментыURL-кодирование / декодирование
Кодируйте и декодируйте текст с percent-encoding и разбирайте строки запроса прямо в браузере.
Кодирование / декодирование HTML-сущностей
Экранируйте и разэкранируйте HTML-сущности, с опциональным числовым кодированием.
Конструктор Cron-выражений
Объясните расписание Cron простыми словами и посмотрите ближайшие запуски.
Минификатор HTML
Сжимайте HTML, удаляя комментарии и схлопывая пробелы.
Минификатор CSS
Уменьшайте размер CSS, убирая комментарии и лишние пробелы.
Экранирование / разэкранирование JSON
Экранируйте сырой текст в безопасную строку JSON и разэкранируйте обратно.