Шпаргалка по регулярным выражениям

Шаг 1 / 3 33%

Выберите движок регулярных выражений

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

С помощью этого интерактивного справочника сравнивайте распространённый синтаксис регулярных выражений до вставки в код. Выберите JavaScript, PCRE2/PHP, Python re, .NET или вид для всех движков, затем тему и нужные записи. Справочник отмечает синтаксис, характерный для отдельного семейства: токен, который компилируется в одном движке, может быть отклонён или означать другое в другом. Поиск и копирование выполняются в браузере, а эта страница не запускает шаблоны на вашем тексте.

Как пользоваться шпаргалкой

  1. 1

    Выберите движок

    Начните с JavaScript, PCRE2/PHP, Python re, .NET или сравните всё. В сфокусированном виде нет записей, неприменимых к выбранному движку.

  2. 2

    Выберите тему

    Откройте якоря, классы символов, квантификаторы, группы, проверки вперёд и назад, распространённые формы шаблонов или флаги и параметры.

  3. 3

    Ищите и копируйте локально

    Ищите токены и описания прямо на странице, затем выделите токен для копирования. Поисковый текст не отправляется на сервер и не добавляется в URL.

  4. 4

    Проверьте в реальном runtime

    Скомпилируйте и протестируйте итоговое выражение в подходящем движке, с нужными флагами и API вашего проекта. Справочник объясняет синтаксис, а не проверяет production-данные.

Совместимость важна

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

Возможность JavaScript RegExp PCRE2 / PHP Python re .NET
Абсолютное начало Нет \A \A \A \A
Абсолютный конец Нет \z \z \Z \z
Свойство Unicode \p{L} Режим u или v Поддерживается Нет во встроенном re Поддерживается
Именованный захват (?<name>...) (?<name>...) или (?P<name>...) (?P<name>...) (?<name>...)
Именованная обратная ссылка \k<name> \k<name> или (?P=name) (?P=name) \k<name>
Глобальное сопоставление Флаг g и API сопоставления Повторный API вроде preg_match_all Повторный API вроде finditer Повторный API вроде Matches

К \d и \w нужно относиться особенно внимательно. В JavaScript \d остаётся цифрами ASCII 0-9, а \w по существу остаётся словесными символами ASCII даже с u. Другие движки могут применять правила Unicode в зависимости от режима и настройки. Если поведение Unicode важно, напишите и протестируйте точное нужное свойство или класс.

Якоря и границы

Токен Что выражает Замечание о переносимости
^ Начало ввода или строки в многострочном режиме Доступно во всех четырёх семействах.
$ Конец ввода или строки в многострочном режиме Доступно во всех четырёх семействах; детали завершающего перевода строки различаются.
\b Граница слова Определение словесного символа зависит от движка и режима.
\A Абсолютное начало строки PCRE2, Python и .NET; не JavaScript.
\z Абсолютный конец строки PCRE2 и .NET; Python использует \Z.
\Z Конец строки в Python PCRE2 и .NET также могут совпасть перед завершающим переводом строки; для абсолютного конца там используйте \z.

Группы и проверки

Токен Значение Важное ограничение
(abc) Захватывающая группа Доступна во всех четырёх семействах.
(?:abc) Незахватывающая группа Доступна во всех четырёх семействах.
(?<name>abc) Именованная группа Синтаксис JavaScript, PCRE2 и .NET.
(?P<name>abc) Именованная группа Синтаксис Python; PCRE2 также принимает его.
(?=abc) / (?!abc) Положительная / отрицательная проверка вперёд Доступна во всех четырёх семействах.
(?<=abc) / (?<!abc) Положительная / отрицательная проверка назад Все четыре семейства поддерживают, но допустимая длина различается.

Проверка назад часто создаёт проблему переносимости. Python re требует фиксированной ширины. Поддержка JavaScript зависит от развёрнутого runtime. Проверяйте точный шаблон в самом старом runtime, который вы поддерживаете, а не только по строке шпаргалки.

Формы шаблонов, а не полные валидаторы

Записи распространённых шаблонов намеренно описывают только форму. Например, ^\d{4}-\d{2}-\d{2}$ принимает 2026-99-99, а простой шаблон формы email не реализует полный стандарт адресов. После начальной проверки формы разбирайте даты, URL и структурированные идентификаторы подходящей библиотекой.

Форма Пример шаблона Чего не доказывает
Знаковое десятичное число ^-?\d+(?:\.\d+)?$ Локальные десятичные знаки, группировку, диапазон или точность.
Текст формы email ^[\w.+-]+@[\w-]+\.[\w.-]+$ Доставляемый или полностью соответствующий стандарту email.
Текст формы HTTP(S) URL ^https?://\S+$ Безопасный, разбираемый или доступный URL.
Форма ISO-даты ^\d{4}-\d{2}-\d{2}$ Реальную календарную дату.
Символы ASCII slug ^[A-Za-z0-9_-]+$ Правила приложения о регистре, разделителях и зарезервированных словах.

Флаги и параметры

Не копируйте флаг без проверки API хоста. JavaScript пишет /pattern/g, Python передаёт re.I или re.X, .NET может использовать RegexOptions, а PCRE2/PHP обычно применяет разделители и завершающие модификаторы. g является флагом глобального сопоставления JavaScript, а не модификатором PCRE2; повторным сопоставлением PCRE2 обычно управляет PHP API. Расширенный режим x доступен в PCRE2, Python и .NET, но не является флагом JavaScript.

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

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

Некоторые знакомые токены непереносимы. Встроенный Python re использует (?P<name>…) для именованных групп, JavaScript использует (?<name>…), а JavaScript не поддерживает абсолютные якоря \A и \z.

Нет. В JavaScript \d означает цифры ASCII, а \w по существу словесные символы ASCII даже с флагом u. У других движков иные режимы и параметры Unicode, поэтому тестируйте нужное вашим данным поведение.

Считайте их только быстрыми проверками формы. Они не доказывают доставляемость email, безопасность или доступность URL, либо существование даты в календаре. Для production-правил используйте специализированный парсер или валидатор.

Сопутствующие инструменты

Справочная таблица ASCII

Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.

Справочник сочетаний клавиш

Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.

Справочник символов HTML

Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.

Счетчик FPS

Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.

Генератор цветовой палитры

Создавайте монохромные, аналоговые, комплементарные, триадные или тетрадные палитры из базового HEX-цвета и экспортируйте готовые CSS-переменные.

Генератор случайных букв

Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.