Кванторы

Кванторы выполняют проверку на определённое количество повторений символа, шаблона или символьного класса.

Кванторы записываются в фигурных скобках ({ и }). Общий вид квантора: {[минимальное-количество-совпадений][,[максимальное-количество-совпадений]]}

Использование кванторов лучше пояснить на примерах:

{1}

Ровно одно появление

{0,1}

Ноль или одно появление

{,1}

То же самое, только короче.

{5,10}

Как минимум 5 повторений, максимум — 10.

{5,}

Как минимум 5 повторений (без верхней границы).

Также определены несколько сокращений:

* (звёздочка)

аналогично {0,}, найти любое количество повторений (вплоть до нуля повторений).

+ (плюс)

аналогично {1,}, как минимум одно появление.

? (знак вопроса)

аналогично {0,1}, ноль или одно появление.

Жадность

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

Современные анализаторы позволяют определять как жадные, так и нежадные регулярные выражения. В основном это проявляется в соответствующих элементах графического интерфейса, например, в диалоге поиска может присутствовать опция «Минимальное совпадение».

Примеры использования

Несколько примеров использования кванторов.

^\d{4,5}\s

Совпадёт с «1234 вперед» и «12345 стоп», но не совпадёт ни с «567 восемь», ни с «223459 много».

\s+

Проверка на один или более пробельных символов.

(ля){1,}

Совпадёт с «ляляля» и с подстрокой «ля» в словах «кляча» и «земля».

/?>

Совпадёт с «/>» в «<closeditem/>», а также с «>» в строке «<openitem>».