СПРАВОЧНИК
Регулярные выражения
Метасимволы, классы, квантификаторы, группы
Справочник конструкций регулярных выражений (regex) с примерами. Каждая запись — отдельный метасимвол, класс, квантификатор или группа: что матчит и как применять. В конце — готовые паттерны для email, телефона, даты, URL и других частых задач.
Группы 6
\1 — обратная ссылка
\1Повтор текста, захваченного группой №1.(?<name>...) — именованная группа (JS/.NET)
(?<name>...)Захватывающая группа с именем (синтаксис JS/.NET/PCRE).(?P<name>...) — именованная группа (Python)
(?P<name>...)Захватывающая группа с именем (синтаксис Python).| — альтернация
|Логическое «или» между вариантами.(?:...) — группа без захвата
(?:...)Группирует без сохранения совпадения.(...) — захватывающая группа
(...)Группирует и сохраняет совпавший фрагмент.Квантификаторы 8
{n,m} — от n до m раз
{n,m}Предыдущий элемент повторяется от n до m раз.{n,} — n и больше раз
{n,}Предыдущий элемент повторяется n или более раз.{n} — ровно n раз
{n}Предыдущий элемент повторяется ровно n раз.*? — ленивый ноль или больше
*?Нежадная версия *: совпадает как можно меньше.+? — ленивый один или больше
+?Нежадная версия +: совпадает как можно меньше.* — ноль или больше
*Предыдущий элемент повторяется 0 или более раз.? — ноль или один
?Предыдущий элемент необязателен (0 или 1 раз).+ — один или больше
+Предыдущий элемент повторяется 1 или более раз.Классы символов 10
[0-9] — диапазон цифр
[0-9]Одна цифра из диапазона.[abc] — набор символов
[abc]Один символ из перечисленных в скобках.[^abc] — отрицание набора
[^abc]Один символ, не входящий в набор.[a-z] — диапазон букв
[a-z]Один символ из диапазона.\D — не цифра
\DЛюбой символ, кроме цифры.\d — цифра
\dЛюбая цифра от 0 до 9.\S — не пробельный символ
\SЛюбой символ, кроме пробельного.\s — пробельный символ
\sПробел, табуляция, перевод строки и подобное.\W — не символ слова
\WЛюбой символ, кроме буквы, цифры и подчёркивания.\w — символ слова
\wБуква, цифра или подчёркивание.Метасимволы 4
Опережение и ретроспектива 4
(?!...) — негативный lookahead
(?!...)Проверяет, что дальше НЕ идёт указанный шаблон.(?<!...) — негативный lookbehind
(?<!...)Проверяет, что перед позицией НЕ идёт указанный шаблон.(?=...) — позитивный lookahead
(?=...)Проверяет, что дальше идёт указанный шаблон.(?<=...) — позитивный lookbehind
(?<=...)Проверяет, что перед позицией идёт указанный шаблон.Примеры 6
Email-адрес
[\w.+-]+@[\w-]+\.[\w.-]+Базовый паттерн для электронной почты.HEX-цвет
#[0-9a-fA-F]{6}Шестнадцатеричный код цвета.IP-адрес
\d{1,3}(?:\.\d{1,3}){3}IPv4-адрес из четырёх октетов.URL
https?://[\w.-]+(?:/\S*)?Ссылка http или https с доменом и путём.Дата (ДД.ММ.ГГГГ)
\d{2}\.\d{2}\.\d{4}Дата в формате день.месяц.год.Номер телефона
\+?\d[\d \-()]{9,}\dТелефонный номер с пробелами, дефисами и скобками.Флаги 5
g — глобальный поиск
gНайти все совпадения, а не только первое.i — игнорировать регистр
iРегистронезависимый поиск.m — многострочный режим
m^ и $ срабатывают на каждой строке текста.s — dotall
sТочка . начинает совпадать и с переводом строки.x — расширенный режим
xИгнорирует пробелы и разрешает комментарии в шаблоне.