Шпаргалка по регулярным выражениям
Выберите движок регулярных выражений
Начните с используемого движка. Справочник скроет синтаксис, неприменимый к выбранному варианту.
С помощью этого интерактивного справочника сравнивайте распространённый синтаксис регулярных выражений до вставки в код. Выберите JavaScript, PCRE2/PHP, Python re, .NET или вид для всех движков, затем тему и нужные записи. Справочник отмечает синтаксис, характерный для отдельного семейства: токен, который компилируется в одном движке, может быть отклонён или означать другое в другом. Поиск и копирование выполняются в браузере, а эта страница не запускает шаблоны на вашем тексте.
Как пользоваться шпаргалкой
-
1
Выберите движок
Начните с JavaScript, PCRE2/PHP, Python re, .NET или сравните всё. В сфокусированном виде нет записей, неприменимых к выбранному движку.
-
2
Выберите тему
Откройте якоря, классы символов, квантификаторы, группы, проверки вперёд и назад, распространённые формы шаблонов или флаги и параметры.
-
3
Ищите и копируйте локально
Ищите токены и описания прямо на странице, затем выделите токен для копирования. Поисковый текст не отправляется на сервер и не добавляется в URL.
-
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. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.