Kurso de Raku / Regulesprimoj kaj gramatikoj / Regulesprimoj / Adverboj

Ĝenerala kongruigo

Defaŭlte, regulesprimo trovas nur la unuan kongruon. La adverbo :g (mallongigo de :global) trovas ĉiun kongruon en la ĉeno. Ĝi estas skribata sur la operatoro m///:

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

Kun :g, la rezulto kondutas kiel listo de kongruaj objektoj — unu por ĉiu loko, kie la ŝablono estis trovita. Vi povas kalkuli ilin, iri tra ili, aŭ transformi ĉiun en ĉenon:

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

Ĉi tie \d+ kongruis kun tri apartaj serioj de ciferoj, kaj :g kolektis ĉiujn el ili.

Ĝenerala kongruigo estas la natura ilo, kiam ajn la demando estas «kiom da …» aŭ «ĉiuj el la …» anstataŭ «ĉu estas …».

Kursa navigado

← Amplekso de adverboj   |   Signifaj spacoj →


💪 Aŭ iru rekte al la ekzercoj de ĉi tiu sekcio.