Курс по Raku / Регулярни изрази и граматики / Регулярни изрази / Квантификатори

Лакомо и пестеливо съпоставяне

По подразбиране квантификаторът е лаком: той съпоставя колкото може повече, но така, че останалата част от шаблона все пак да успее. Помислете за съпоставяне от първото < до някое >:

say '<a><b>' ~~ / '<' .+ '>' /; # 「<a><b>」

.+ погълна колкото можа, чак до последното >, така че съвпадението обхваща и двете двойки скоби.

За да направите квантификатора пестелив (наричан още мързелив или нелаком), добавете ? след него. Пестеливият квантификатор съпоставя възможно най-малко:

say '<a><b>' ~~ / '<' .+? '>' /; # 「<a>」

Сега .+? спира на първото >, така че съвпада само първото парче в скоби.

Наставката ? работи с всеки квантификатор: *? и **? също са пестеливи. Лакомите и пестеливите версии съпоставят едни и същи видове текст — те се различават само по това колко вземат, когато има избор.

Практика

Направете 1 тест върху съдържанието на тази тема.

Навигация в курса

Квантификаторът за брой   |   Тест — Квантификатори


💪 Или преминете направо към упражненията в този раздел.