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