Cursus Raku / Reguliere expressies en grammatica’s / Reguliere expressies / Bijwoorden
Globaal matchen
Standaard vindt een regex alleen de eerste match.
Het bijwoord :g (kort voor :global) vindt
elke match in de string. Het wordt op de operator
m/// geschreven:
my @all = 'a1b2c3' ~~ m:g/\d/;
say @all; # [「1」 「2」 「3」]
say @all.elems; # 3Met :g gedraagt het resultaat zich als een lijst
matchobjecten — een voor elke plek waar het patroon gevonden is. Je kunt
ze tellen, erover lussen, of er elk een string van maken:
my @numbers = 'a12 b3 c456' ~~ m:g/\d+/;
say @numbers.map(*.Str).join(', '); # 12, 3, 456Hier matchte \d+ drie afzonderlijke reeksen cijfers, en
:g verzamelde ze allemaal.
Globaal matchen is het natuurlijke gereedschap zodra de vraag “hoeveel …” of “alle …” luidt in plaats van “is er een …”.
Cursusnavigatie
← Bereik van een bijwoord | Significante witruimte →
💪 Of ga direct naar
de oefeningen in deze sectie.