Регулярные выражения мощный инструмент, позволяющий работать с данными: искать и получать информацию, производить различные манипуляции с текстом и отдельными символами. Регулярные выражения являются формальным языком поиска и работы с текстом. Они используются во многих языках программирования. Вот небольшая табличка шпаргалка, в которой показаны основные операции проводимые над данными с использованием регулярных выражений.
Якоря
Наименование |
Описание |
^ |
Начало строки + |
\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 |
Нежадный шаблон |
Мета-символы (экранируются)
^ |
[ |
. |
$ |
{ |
* |
( |
\ |
+ |
) |
| |
? |
< |
> |
Это отнюдь не все что через регулярки можно. Там сам черт ногу сломит в этих регулярках.