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

Якоря

Наименование Описание
^ Начало строки +
\A Начало текста +
$ Конец строки +
\Z Конец текста +
\b Граница слова +
\B Не граница слова +
\< Начало слова
\> Конец слова

Символьные классы

Наименование Описание
\c Управляющий символ
\s Пробел
\S Не пробел
\d Цифра
\D Не цифра
\w Слово
\W Не слово
\xhh Шестнадцатиричный символ hh
\Oxxx Восьмиричный символ xxx

Символьные классы POSIX

Наименование Описание
[:upper:] Буквы в верхнем регистре
[:lower:] Буквы в нижнем регистре
[:alpha:] Все буквы
[:alnum:] Буквы и цифры
[:digit:] Цифры
[:xdigit:] Шестнадцатиричные цифры
[:punct:] Пунктуация
[:blank:] Пробел и табуляция
[:space:] Пустые символы
[:cntrl:] Управляющие символы
[:graph:] Печатные символы
[:print:] Печатные символы и пробелы
[:word:] Буквы, цифры и подчеркивание

Утверждения

Наименование Описание
?= Вперед смотрящее +
?! Отрицательное вперед смотрящее +
?<= Назад смотрящее +
?!= или ? Отрицательное назад смотрящее +
?> Однократное подвыражение
?() Условие [если, то]
?()| Условие [если, то, а иначе]
?# Комментарий

Кванторы

Наименование Описание
* 0 или больше +
*? 0 или больше, нежадный +
+ 1 или больше +
+? 1 или больше, нежадный +
? 0 или 1 +
?? 0 или 1, нежадный +
{2} Ровно 2 +
{2,} 2 или больше +
{2,4} 2, 3 или 4 +
{2,4}? 2, 3 или 4, нежадный +

Специальные символы

Наименование Описание
\ Экранирующий символ +
\n Новая строка +
\r Возврат каретки +
\t Табуляция +
\v Вертикальная табуляция +
\f Новая страница +
\a Звуковой сигнал
[\b] Возврат на один символ
\e Escape-символ
\N{name} Именованый символ

Подстановка строк

Наименование Описание
$n n-ая непассивная группа
$2 «xyz» в /^(abc(xyz))$/
$1 «xyz» в /^(?:abc)(xyz)$/
$` Перед найденной строкой
$' После найденной строки
$+ Последняя найденная строка
$& Найденная строка целиком
$_ Исходный текст целиком
$$ Символ «$»

Диапазоны

Наименование Описание
. Любой символ, кроме переноса строки (\n) +
(a|b) a или b +
(...) Группа +
(?:...) Пассивная группа +
[abc] Диапазон (a или b или c) +
[^abc] Не a, не b и не c +
[a-q] Буква между a и q +
[A-Q] Буква в верхнем регистре между A и Q +
[0-7] Цифра между 0 и 7 +
\n n-ая группа/подшаблон +

Модификаторы шаблонов

Наименование Описание
g Глобальный поиск
i Регистронезависимый шаблон
m Многострочный текст
s Считать текст одной строкой
x Разрешить комментарии  и пробелы в шаблоне
e Выполнение подстановки
U Нежадный шаблон

Мета-символы (экранируются)

^ [
. $
{ *
( \
+ )
| ?
< >