Курс языка программирования Raku / Регулярные выражения и грамматики / Регулярные выражения / Квантификаторы
Жадное и экономное сопоставление
По умолчанию квантификатор жаден: он берёт столько, сколько
может, лишь бы остальная часть шаблона всё же совпала. Рассмотрим
сопоставление от первой < до какой-нибудь
>:
say '<a><b>' ~~ / '<' .+ '>' /; # 「<a><b>」.+ заглотил всё, что смог, вплоть до
последней >, поэтому совпадение
растянулось на обе пары скобок.
Чтобы сделать квантификатор экономным (его называют также
ленивым или нежадным), добавьте после него
?. Экономный квантификатор берёт как можно
меньше:
say '<a><b>' ~~ / '<' .+? '>' /; # 「<a>」Теперь .+? останавливается на первой
>, поэтому совпадает только первый кусочек в
скобках.
Суффикс ? работает с любым квантификатором:
*? и **? тоже экономные. Жадный и экономный
варианты сопоставляют один и тот же род текста — они различаются лишь
тем, сколько берут, когда есть выбор.
Практика
Пройдите 1 тест по содержанию этой темы.
Навигация по курсу
← Квантификатор количества | Тест — Квантификаторы →
💪 Или перейдите сразу к упражнениям этого
раздела.