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

Жадібне та ощадливе зіставлення

За замовчуванням квантифікатор є жадібним: він зіставляється з якнайбільшим шматком, який усе ще дозволяє решті шаблону вдатися. Розгляньмо зіставлення від першого < до >:

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

.+ проковтнув усе, що зміг, аж до останнього >, тож збіг простягається через обидві пари дужок.

Щоб зробити квантифікатор бережливим (його також називають лінивим чи нежадібним), додайте після нього ?. Бережливий квантифікатор зіставляється з якнайменшим шматком:

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

Тепер .+? зупиняється на першому >, тож збігається лише перша частина в дужках.

Суфікс ? працює з будь-яким квантифікатором: *? та **? теж бережливі. Жадібна й бережлива версії зіставляються з тими самими різновидами тексту — вони різняться лише тим, скільки беруть, коли є вибір.

Практика

Виконайте 1 тест за змістом цієї теми.

Навігація курсом

Квантифікатор кількості   |   Тест — Квантифікатори


💪 Або перейдіть одразу до вправ цього розділу.