ESC

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

/ / g

Быстрые шаблоны

Статистика

Всего совпадений 0
Групп 0
Время выполнения 0ms
Все данные обрабатываются в браузере. Ничего не отправляется на сервер.

0

Всего совпадений

0

Групп

0ms

Время выполнения

Примеры использования

Проверка email

Валидация и извлечение email-адресов из текста с помощью regex-шаблонов.

/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g
Извлечение URL

Поиск и извлечение URL-адресов из любого текста с помощью регулярных выражений.

/https?:\/\/[\w\-]+(\.[\w\-]+)+/g
Парсинг телефонных номеров

Разбор и проверка телефонных номеров в различных международных форматах.

/\+?\d{1,4}[-.\s]?\(?\d{1,3}\)?[-.\s]?\d{1,4}/g

Возможности

Подсветка совпадений

Визуальная подсветка всех совпадений в тестовой строке

Флаги Regex

Поддержка глобального, без учёта регистра, многострочного и DotAll флагов

Быстрые шаблоны

Готовые шаблоны для типовых задач: email, URL, телефон

Детали групп

Просмотр групп захвата и именованных групп для каждого совпадения

Статистика

Количество совпадений, групп и время выполнения

Тестирование в реальном времени

Результаты обновляются автоматически при вводе

Обработка ошибок

Понятные сообщения об ошибках при некорректных regex-шаблонах

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

Вся обработка в браузере, данные не отправляются на сервер

Как использовать?

1

Введите шаблон

Введите регулярное выражение в поле шаблона.

2

Настройте флаги

Выберите нужные флаги: глобальный, без учёта регистра, многострочный, DotAll.

3

Введите тестовую строку

Вставьте или введите текст для проверки вашего regex-шаблона.

4

Посмотрите результаты

Совпадения подсвечены, детали включают информацию о группах.

5

Используйте быстрые шаблоны

Попробуйте готовые шаблоны для типовых задач вроде email или URL.

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

Регулярное выражение — это последовательность символов, определяющая шаблон поиска. Вы можете использовать его для поиска текста, соответствующего шаблону, проверки соответствия ввода формату, извлечения определенных частей строки или замены фрагментов текста. Примеры: /\d{4}-\d{2}-\d{2}/ соответствует датам в формате ГГГГ-ММ-ДД; /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/ проверяет адреса электронной почты; /https?:\/\/[^\s]+/g находит все URL в блоке текста. Regex нативно поддерживается в JavaScript, Python, PHP, Ruby, Java, Go и практически во всех других языках программирования.

g (global): найти все совпадения, а не только первое. Без g регулярное выражение возвращает только первое совпадение. i (case insensitive): "hello" соответствует "Hello", "HELLO", "hElLo". m (multiline): ^ и $ соответствуют началу/концу каждой строки, а не всей строки целиком. Без m символ ^ соответствует только самому началу ввода. s (dotAll / single-line): точка . обычно соответствует любому символу, кроме новой строки — с флагом s она также соответствует новым строкам. Этот инструмент основан на JavaScript, поэтому доступные флаги — те, что поддерживаются реализацией RegExp в JavaScript.

Нумерованные группы захвата: скобки () в вашем шаблоне захватывают соответствующий текст, на который можно сослаться по индексу: $1, $2 и т.д. Например, (\d{4})-(\d{2})-(\d{2}) для "2026-03-15" захватит год как группу 1, месяц как группу 2, день как группу 3. Именованные группы захвата: (?<name>pattern) присваивает метку группе, делая её доступной как match.groups.name в JavaScript. Пример: (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}). Именованные группы более читаемы и не ломаются при добавлении групп в других частях шаблона. Незахватывающие группы (?:pattern) группируют без захвата, что полезно, когда вам нужна группировка для выбора (a|b), но не само совпадение.

Самые распространенные причины: (1) Отсутствует флаг g — без него находится только первое совпадение, и счетчик показывает 1, когда вы ожидали больше. (2) Неэкранированные специальные символы — в regex символ . соответствует любому символу, но \. соответствует литеральному периоду. Аналогично \( \) для скобок, \[ \] для квадратных скобок. (3) Неверные якоря — ^ и $ без флага m соответствуют началу/концу всей строки, а не каждой строки. (4) Жадность квантификаторов — .* совпадает с максимально возможным количеством символов, часто поглощая то, что вы хотели захватить. Используйте .*? для нежадного поиска. (5) Шаблон требует больше входных данных, чем вы предоставили — проведите быструю проверку с более простым подшаблоном.

Катастрофический бэктрекинг возникает, когда регулярное выражение с вложенными квантификаторами вызывает экспоненциальную временную сложность на определенных входных данных. Классический пример: (a+)+ применительно к "aaaaaab" — движок пытается все возможные способы разделения букв а среди вложенных групп перед отказом, из-за чего шаблон зависает. Вы можете вызвать это в тестере, чтобы увидеть эффект. Профилактика: избегайте вложенных квантификаторов на перекрывающихся шаблонах, используйте жадные квантификаторы или атомарные группы там, где они поддерживаются, и будьте специфичны в том, что соответствует каждая часть. Если вы видите, что тестер перестал реагировать, ваш шаблон, скорее всего, вызывает катастрофический бэктрекинг — обновите страницу и упростите шаблон.

Lookaheads и Lookbehinds находят позицию на основе того, что предшествует или следует за ней, не включая этот контекст в совпадение. Положительный Lookahead (?=...): \w+(?=@) совпадает со словом перед @ без включения @. Отрицательный Lookahead (?!...): \d+(?!\.\d) совпадает с числом, за которым не следует десятичная точка. Положительный Lookbehind (?<=...): (?<=\$)\d+ совпадает с цифрами, перед которыми стоит $. Отрицательный Lookbehind (?<!...): (?<!\d)\d+ совпадает с цифрами, перед которыми нет цифры. JavaScript поддерживает все четыре с версии ES2018, включая Lookbehind переменной длины в современных браузерах.

Да. Этот инструмент использует встроенный движок RegExp JavaScript, поэтому все шаблоны и флаги специфичны для JavaScript. Диалект JavaScript во многом совпадает с Perl-compatible regex (PCRE), но имеет некоторые различия: отсутствие жадных квантификаторов (синтаксис a++), ограниченный Lookbehind (Lookbehind переменной длины добавлен в ES2018) и другое обработчик Unicode. Если вы пишете регулярные выражения для Python, учтите, что Python использует \A и \Z вместо ^ и $ для якорей строк, а сырые строки (r"pattern") позволяют избежать двойного экранирования. Для PHP (PCRE) или Java регулярок шаблоны в основном совместимы с JavaScript, но проверьте синтаксис разделителей и флагов.

Нет. Все сопоставления регулярных выражений выполняются в вашем браузере с использованием нативного движка RegExp JavaScript. Ваши шаблоны и тестовые строки никогда не покидают ваше устройство.

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

Regex — то, что все гуглят каждый раз заново. Вставьте шаблон, вставьте текст — и сразу увидите подсвеченные совпадения. Не нужно гадать, правильный ли шаблон — вы узнаете это в реальном времени.

Поиск по шаблону регулярных выражений

Отлаживать regex без обратной связи — мучение. Этот тестер показывает группы захвата, позиции совпадений и статистику выполнения, чтобы вы точно поняли, почему шаблон не ловит то, что ожидаете.

Готовые шаблоны для типовых задач

Не помните шаблон для валидации email? Или как найти URL? Нажмите на быстрые шаблоны и загрузите готовые regex для email, URL, телефонов, IP и дат одним кликом. Сэкономите поход на Stack Overflow.

Безопасность и конфиденциальность

Безопасность ваших данных — наш приоритет

Локальная обработка

Вся обработка происходит в вашем браузере

Без передачи данных

Ваши данные не отправляются на наши серверы

Без хранения данных

Данные не хранятся и не передаются

SSL-шифрование

SSL-шифрование для безопасного соединения

Next Step

Также на MoreOnlineTools