Регулярные выражения

Разделы:


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


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

Якоря


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

Кванторы


*      ## 0 или больше
*?     ## 0 или больше, нежадный
+      ## 1 или больше
+?     ## 1 или больше, нежадный
?      ## 0 или 1
??     ## 0 или 1, нежадный
{3}    ## Ровно 3
{3,}   ## 3 или больше
{3,5}  ## 3, 4 или 5
{3,5}? ## 3, 4 или 5, нежадный

Утверждения


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

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


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

Диапазоны


.       ## Любой символ, кроме переноса строки (\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 ## Нежадный шаблон

Мета-символы


## экранируются
^ 
[ 
.
$ 
{ 
*
( 
\ 
+
) 
| 
?
< 
>

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


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

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


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