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

Глобальне зіставлення

Типово регекс знаходить лише перший збіг. Прислівник :g (скорочення від :global) знаходить кожен збіг у рядку. Його записують на операторі m///:

my @all = 'a1b2c3' ~~ m:g/\d/;
say @all;       # [「1」 「2」 「3」]
say @all.elems; # 3

З :g результат поводиться як список об’єктів збігу — по одному на кожне місце, де знайшовся шаблон. Їх можна порахувати, обійти циклом або перетворити кожен на рядок:

my @numbers = 'a12 b3 c456' ~~ m:g/\d+/;
say @numbers.map(*.Str).join(', '); # 12, 3, 456

Тут \d+ знайшов три окремі послідовності цифр, а :g зібрав їх усі.

Глобальне зіставлення — природний інструмент щоразу, коли питання звучить як «скільки…» чи «усі…», а не «чи є там…».

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

Область дії прислівника   |   Значущі пробіли


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