Кванторы выполняют проверку на определённое количество повторений символа, шаблона или символьного класса.
Кванторы записываются в фигурных скобках ({ и }). Общий вид квантора: {[минимальное-количество-совпадений][,[максимальное-количество-совпадений]]}
Использование кванторов лучше пояснить на примерах:
{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>».