Шпаргалка по регулярным выражениям
Шпаргалка по регулярным выражениям с поиском: классы символов, якоря, квантификаторы, группы, просмотр вперёд и назад, экранирование, флаги и шаблоны замены с примерами.
Классы символов
. | Любой символ, кроме перевода строки (любой символ с флагом s) a.c → abc, a-c |
\d | Цифра 0–9 (только ASCII-цифры даже с флагом u) \d+ → 2024 |
\D | Любой символ, кроме цифры |
\w | Символ слова: A–Z, a–z, 0–9 или _ (кириллица не входит) \w+ → user_42 |
\W | Любой символ, кроме символа слова |
\s | Пробельный символ: пробел, табуляция, переводы строк и пробелы Unicode |
\S | Любой непробельный символ |
[abc] | Один из перечисленных символов [aeiou] → e |
[^abc] | Любой символ, кроме перечисленных |
[a-z] | Символ из диапазона (здесь от a до z) [0-9a-f]+ → ff00 |
\p{L} | Любая буква любой письменности, включая кириллицу (нужен флаг u) \p{L}+ (u) → Việt |
\p{Script=Han} | Символ заданной письменности, например Han, Latin, Cyrillic (нужен флаг u) |
Якоря
^ | Начало текста (начало каждой строки с флагом m) |
$ | Конец текста (конец каждой строки с флагом m) |
\b | Граница слова \bcat\b → cat (not concat) |
\B | Не граница слова |
Квантификаторы
* | 0 или более раз (жадно) |
+ | 1 или более раз (жадно) |
? | 0 или 1 раз (необязательно) colou?r → color, colour |
{n} | Ровно n раз \d{4} → 2024 |
{n,} | n или более раз |
{n,m} | От n до m раз |
*? +? ?? | Ленивые версии: как можно меньше символов <.+?> → <b> |
Группы и ссылки
(abc) | Захватывающая группа, досту пна как $1, $2… |
(?:abc) | Группа без захвата |
(?<name>abc) | Именованная захватывающая группа (?<y>\d{4}) → y = 2024 |
\1 | Повтор текста, захваченного группой 1 (\w)\1 → ll in hello |
\k<name> | Повтор текста именованной группы |
a|b | Левая или правая альтернатива cat|dog → dog |
Опережающие и ретроспективные проверки
(?=abc) | Далее следует abc (не входит в совпадение) \d+(?=px) → 12 in 12px |
(?!abc) | Далее не следует abc |
(?<=abc) | Перед этим стоит abc (не входит в совпадение) (?<=\$)\d+ → 5 in $5 |
(?<!abc) | Перед этим не стоит abc |
Экранирование
\. \* \\ | Экранирует спецсимвол, чтобы искать его буквально |
\n \t \r | Перевод строки, табуляция, возврат каретки |
\uFFFF | Символ по 4-значному шестнадцатеричному коду |
\u{1F600} | Символ по кодовой точке (нужен флаг u) |
Флаги
g | Находить все совпадения, а не только первое |
i | Без учёта регистра |
m | ^ и $ совпадают с началом и концом каждой строки |
s | Точка совпадает и с переводом строки |
u | Полный режим Unicode: \p{…}, \u{…}, эмодзи — один символ |
y | Совпадение только с позиции lastIndex (sticky) |
d | Возвращает индексы начала и конца каждой группы |
Шаблоны замены
$1 | Текст захватывающей группы 1 |
$<name> | Текст именованной группы |
$& | Всё совпадение целиком |
$` $' | Текст до / после совпадения |
$$ | Символ $ как есть |
Похожие Инструменты
Просмотреть ВсеЧто такое Шпаргалка по регулярным выражениям?
Компактный справочник синтаксиса регулярных выражений JavaScript (ECMAScript) с поиском. Охватывает классы символов, Unicode-свойства, якоря, квантификаторы (жадные и ленивые), группы и обратные ссылки, просмотр вперёд и назад, экранирование, все семь флагов и специальные шаблоны, применимые в строках замены, с короткими примерами.
Как пользоваться Шпаргалка по регулярным выражениям
- Прокручивайте разделы или вводите текст в поле поиска, чтобы отфильтровать по токену (например, \b) или по словам в описании (например, «lookbehind»).
- Читайте описание и пример под каждым токеном.
- Опробуйте шаблон в тестере регулярных выражений.
Пример
Search: \d
\d – A digit 0–9 (with the u flag still only ASCII digits); \D – Any character that is not a digit
Когда использовать Шпаргалка по регулярным выражениям
Используйте при написании регулярных выражений для JavaScript, TypeScript, Node.js и большинства современных движков. Синтаксис, специфичный для движков (притяжательные квантификаторы, атомарные группы, \A, \z, встроенные модификаторы в PCRE/Python), не перечислен, потому что JavaScript его не поддерживает.
Как работает Шпаргалка по регулярным выражениям
Записи сгруппированы по темам. Поле поиска фильтрует записи, токен или переведённое описание которых содержит ваш текст, без учёта регистра. Описания отражают поведение ECMAScript, например что \d соответствует только ASCII-цифрам даже с флагом u, что \p{…} требует флага u и что . не соответствует переносам строк, если не задан флаг s.
Распространенные Случаи Использования
- Поиск синтаксиса именованной группы или lookbehind
- Напоминание о том, что делает каждый флаг regex
- Проверка шаблонов замены вроде $& и $<name>
- Обучение основам regex с примерами
Часто Задаваемые Вопросы
Соответствует ли \w буквам с акцентами?
Нет. В JavaScript \w — это только A–Z, a–z, 0–9 и _. Используйте \p{L} с флагом u, чтобы находить буквы любого языка, включая кириллицу.
В чём разница между жадными и ленивыми квантификаторами?
Жадные квантификаторы (*, +, {n,}) захватывают как можно больше; добавление ? (*?, +?) делает их захват минимальным, например <.+?> находит один тег, а не всё до последнего >.
Поддерживает ли JavaScript lookbehind?
Да, (?<=…) и (?<!…) поддерживаются во всех современных браузерах и Node.js.