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

Тестируйте регулярные выражения онлайн. Анализируйте совпадения, исправляйте ошибки и создавайте эффективные шаблоны для поиска данных.

Тестирование RegEx

Результат регулярного выражения

Совпадения

Совпадений не найдено

Остаток

Нет несовпадающего содержимого

Поддержать DevBox Tools ❤️

Возможности инструмента "Регулярные выражения"

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

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

Поддержка разных флагов и модификаторов

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

Генерация шаблонов для парсинга данных

Позволяет быстро создавать выражения для автоматической обработки больших текстовых массивов, логов и HTML-кода.

Руководство и инструкции по применению

Что такое регулярные выражения (Regex)

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

С помощью regex можно:

  • находить нужные фрагменты текста (например, email, URL, числа)

  • проверять формат данных (валидация форм)

  • заменять и очищать текст

  • извлекать данные из строк

Регулярные выражения широко используются в разработке, аналитике данных, SEO и автоматизации задач.

Что делает инструмент “Проверка регулярных выражений”

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

С его помощью вы можете:

  • проверить, соответствует ли текст заданному шаблону

  • увидеть все совпадения в строке

  • отладить сложные выражения

  • протестировать разные варианты regex без написания кода

Популярные движки и их особенности

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

Движок

Где используется

Особенности

JavaScript (ECMAScript)

Браузеры, Node.js

Ограниченный lookbehind (зависит от версии)

PCRE

PHP, многие инструменты

Один из самых мощных

Python (re)

Python

Нет некоторых PCRE-фич

Java (Pattern)

Java

Строгий синтаксис

.NET

C#

Расширенные возможности

Всегда проверяйте regex в том окружении, где он будет использоваться. Учитывайте различия в поддержке lookbehind и Unicode. Для кросс-платформенных решений используйте более простой синтаксис.

Флаги регулярных выражений

Флаги регулярных выражений — это дополнительные параметры, которые изменяют поведение поиска и обработки шаблона. Они позволяют управлять регистром, областью поиска (вся строка или несколько строк) и особенностями интерпретации символов.

Флаг

Значение

i

Игнорировать регистр

g

Глобальный поиск

m

Многострочный режим

s

dotall (включает \n в .)

u

Unicode

Специальные символы в регулярных выражениях

Тип символа

Символ

Описание

Якоря (позиции в строке)

^

Начало строки

Якоря (позиции в строке)

$

Конец строки

Якоря (позиции в строке)

\b

Граница слова (позиция между словесным и не словесным символом)

Якоря (позиции в строке)

\B

Не граница слова

Метасимволы

.

Метасимвол, соответствующий любому символу, кроме новой строки (\n)

Метасимволы

|

Соответствует указанному символу или группе символов с любой стороны (ИЛИ)

Метасимволы

\

Используется для экранирования специального символа

Литералы (обычные символы)

a

Символ "a"

Литералы (обычные символы)

ab

Строка "ab"

Квантификаторы

*

Соответствует 0 или более повторениям предыдущего элемента

Квантификаторы

?

Соответствует 0 или 1 повторению предыдущего элемента

Квантификаторы

+

Соответствует 1 или более повторениям предыдущего элемента

Квантификаторы

{5}

Соответствует ровно 5 повторениям

Квантификаторы

{5,}

Соответствует 5 или более повторениям предыдущего символа или группы

Квантификаторы

{5,10}

Соответствует от 5 до 10 повторений

Классы символов (предопределённые)

\s

Соответствует пробельному символу

Классы символов (предопределённые)

\S

Соответствует непробельному символу

Классы символов (предопределённые)

\w

Соответствует словесному символу (буквенно-цифровой + подчеркивание)

Классы символов (предопределённые)

\W

Соответствует не словесному символу

Классы символов (предопределённые)

\d

Соответствует одной цифре

Классы символов (предопределённые)

\D

Соответствует одному нецифровому символу

Escape-последовательности (спецсимволы)

[\b]

Символ возврата (backspace)

Escape-последовательности (спецсимволы)

\c

Соответствует управляющему символу

Escape-последовательности (спецсимволы)

\n

Соответствует символу новой строки

Escape-последовательности (спецсимволы)

\t

Соответствует символу табуляции

Escape-последовательности (спецсимволы)

\r

Соответствует символу возврата каретки

Escape-последовательности (спецсимволы)

\ZZZ

Соответствует восьмеричному символу ZZZ (например, \040 для пробела)

Escape-последовательности (спецсимволы)

\xZZ

Соответствует шестнадцатеричному символу ZZ (например, \x20 для пробела)

Escape-последовательности (спецсимволы)

\0

Нулевой символ (Null)

Escape-последовательности (спецсимволы)

\v

Вертикальная табуляция

Группы

(xyz)

Захватывающая группа символов

Группы

(?:xyz)

Незахватывающая группа символов

Наборы и диапазоны

[xyz]

Соответствует любому одному символу из набора x, y или z

Наборы и диапазоны

[^xyz]

Соответствует любому символу, не входящему в набор x, y или z

Наборы и диапазоны

[a-q]

Соответствует любому символу в диапазоне от "a" до "q"

Наборы и диапазоны

[0-7]

Соответствует любой цифре в диапазоне от "0" до "7"

Замены (replacement patterns)

$`

Вставляет часть строки, предшествующую совпадению

Замены (replacement patterns)

$'

Вставляет часть строки, следующую за совпадением

Замены (replacement patterns)

$+

Вставляет последнюю совпавшую захватывающую группу

Замены (replacement patterns)

$&

Вставляет всю совпавшую строку

Замены (replacement patterns)

$n

Вставляет n-ую захваченную группу (например, $1, $2)

Lookaround (проверки)

(?=xyz)

Позитивная проверка вперёд (утверждает, что далее следует xyz)

Lookaround (проверки)

(?!xyz)

Негативная проверка вперёд (утверждает, что далее не следует xyz)

Lookaround (проверки)

(?<=xyz)

Позитивная проверка назад (утверждает, что этому предшествует xyz)

Lookaround (проверки)

(?<!xyz)

Негативная проверка назад (утверждает, что этому не предшествует xyz)

Комментарии

(?#comment)

Комментарий (игнорируется движком регулярных выражений)

Часто используемые регулярные выражения

Задача

Regex

Только цифры

^\d+$

Только латиница

^[A-Za-z]+$

Дата (DD.MM.YYYY)

\d{2}\.\d{2}\.\d{4}

Домен

^[a-z0-9.-]+\.[a-z]{2,}$

URL

https?:\/\/[^\s]+

Slug

^[a-z0-9-]+$

Email (базовый)

^[^\s@]+@[^\s@]+\.[^\s@]+$

Email (строже)

^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$

Телефон (универсальный)

^\+?\d{7,15}$

HTML-теги

<[^>]+>

Сильный пароль

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_]).{12,}$

UUID

^[0-9a-fA-F-]{36}$

HEX цвет

^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$

IP (IPv4)

^(\d{1,3}\.){3}\d{1,3}$

MAC адрес

^([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$

Типичные ошибки при работе с регулярными выражениями

Регулярные выражения часто выглядят простыми, но содержат много скрытых нюансов. Ниже — распространённые ошибки, которые приводят к неправильным результатам.

Ошибки синтаксиса и логики

  • Забыто экранирование специальных символов . означает любой символ, а не точку → используйте \.

  • Неправильное использование квантификаторов *, +, {} применяются к предыдущему элементу, а не ко всей строке.

  • Путаница между жадными и ленивыми выражениями .* захватывает максимум → используйте .*?, если нужно минимальное совпадение.

Ошибки при работе со строками

  • Отсутствие якорей ^ и $. Без них regex может находить совпадения внутри строки, а не по всей строке.

  • Игнорирование регистра "Test" ≠ "test" → используйте флаг i, если регистр не важен.

  • Неправильная работа с пробелами \s включает табы, переносы и другие символы, а не только пробел.

Ошибки в практическом использовании

  • Использование \w для Unicode. В большинстве движков \w = [A-Za-z0-9_], кириллица не входит.

  • Попытка распарсить сложные форматы (HTML, JSON) через regex. Это ненадёжно, используйте специализированные парсеры.

  • Слишком сложные выражения. Сложный regex сложно поддерживать и отлаживать.

Ошибки производительности

  • Использование вложенных квантификаторов. Например: (.*)+ может вызвать catastrophic backtracking.

  • Отсутствие ограничений. .* без ограничений может замедлить выполнение на больших строках.

Описание инструмента

alien

Учтите, что регулярные выражения в данном инструменте обрабатываются по стандарту ECMAScript (JavaScript RegExp). Это означает, что поведение шаблонов соответствует тому, как они работают в браузере или в коде на JavaScript. Некоторые конструкции, такие как экранирование символов (/ и /), могут вести себя одинаково, даже если выглядят по-разному. Если вы привыкли к регулярным выражениям в других языках (например, Python, PHP, .NET или POSIX), учтите, что в них возможны отличия в синтаксисе и логике сопоставления.

Этот инструмент позволяет тестировать регулярные выражения (RegEx) и проверять их работоспособность. RegEx широко используется в программировании, обработке данных и SEO-аналитике.

С его помощью можно искать, заменять и анализировать текстовые шаблоны, упрощая работу с большими объемами данных.

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

Регулярные выражения (regex) — это мощные инструменты сопоставления с образцом для поиска, проверки и манипулирования текстом. Они необходимы для проверки данных, операций поиска и задач обработки текста.

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

Общие шаблоны включают проверку электронной почты, номера телефонов, даты, URL-адреса и почтовые индексы. Изучите основные метасимволы, такие как ., *, +, ?, ^, $ и классы символов, такие как \d, \w, \s.

Часто используемые флаги включают i (игнорирование регистра), g (глобальный поиск), m (многострочный режим) и u (поддержка Unicode). Они помогают точнее управлять поиском и сопоставлением.

Сложные шаблоны с возвратом могут быть медленными на больших текстах. Оптимизируйте, будучи конкретным, избегая вложенных квантификаторов и используя якоря (^ и $) по возможности. Тестируйте производительность с реалистичными размерами данных.

Группы захвата — это части регулярного выражения (определенные скобками), которые позволяют извлекать определенные подсекции текста, соответствующие шаблону. Это полезно для переформатирования или извлечения конкретных данных.

'Жадный' квантификатор (например, `.*`) попытается сопоставить как можно больше символов. 'Ленивый' квантификатор (например, `.*?`) попытается сопоставить как можно меньше символов. Выбор зависит от желаемого поведения сопоставления.

Большинство современных реализаций регулярных выражений поддерживают Unicode, что позволяет сопоставлять символы на разных языках и алфавитах. Однако точная поддержка может варьироваться между языками программирования и инструментами.

Оцените этот инструмент
4.5(25 пользователей оценило)