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

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

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

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

Символ

Значение

\

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

^

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

$

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

.

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

[

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

]

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

|

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

(

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

)

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

?

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

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

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

*

0 или более

+

1 или более

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

{

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

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

Символ

Значение

\

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

^

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

-

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

[

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

]

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