K2. Особенности регулярных выражений PCRE

Регулярное выражение - это шаблон, сопоставляемый с текстом слева направо. Большинство символов в шаблоне обозначают сами себя и применяются к соответствующим символам в тексте.

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

Существует два различных набора метасимволов: те, которые используются внутри квадратных скобок, и те, которые используются вне квадратных скобок. Рассмотрим их более детально. Вне квадратных скобок используются следующие метасимволы:

\

обычный управляющий символ (escape), допускающий несколько вариантов применения,

^

объявляет начало строки (или текста в многострочном режиме),

$

объявляет конец строки (или текста в многострочном режиме),

.

соответствует любому символу, кроме символа переноса строки (по умолчанию),

[

начало описания класса символов,

]

конец описания класса символов,

|

начало альтернативной ветви,

(

начало подшаблона,

)

конец подшаблона,

?

расширяет значение (,

 


также квантификатор 0 или 1,

 


также квантификатор-минимизатор;

*

0 или более,

+

1 или более,

 


также "притяжательный квантификатор",

{

начало минимального/ максимального квантификатора.

Та часть шаблона, которая находится в квадратных скобках, называется "классом символов". В классе символов метасимволами являются:

\

обычный управляющий символ (escape),

^

отрицает класс, но только если в начале класса,

-

определяет диапазон символов,

[

класс символов POSIX (только если за ним следует синтаксис POSIX),

]

закрывает класс символов.