Курс по 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 ги събра всички.
Глобалното съпоставяне е естественият инструмент винаги когато въпросът е „колко…“ или „всички…“, а не „има ли изобщо…“.
Навигация в курса
← Обхват на наречията | Значещи интервали →
💪 Или преминете направо към упражненията в този
раздел.