Kurso de Raku / Regulesprimoj kaj gramatikoj / Regulesprimoj / Kongruigi ĉenojn
La kongrua objekto
Kiam regulesprimo kongruas, la sagaca kongruigo redonas kongruan
objekton. La sama objekto estas ankaŭ konservata aŭtomate en la
speciala variablo $/, kiu foje nomiĝas «la kongrua
variablo».
La kongrua objekto estas multe pli ol jes-aŭ-ne respondo. Kiel ĉeno,
ĝi estas la teksto, kiu kongruis — aŭ per la metodo .Str,
aŭ per la prefikso ~, kiu estas la operatoro de ĉen-devigo
kaj faras ekzakte la samon:
my $m = 'concatenate' ~~ /cat/;
say $m.Str; # cat
say ~$m; # catĜi ankaŭ scias, kie en la ĉeno la kongruo estis
trovita. La metodo .from donas la pozicion, kie ĝi
komenciĝas, kaj .to donas la pozicion tuj post ĝia
fino:
my $m = 'room 7 left' ~~ /\d/;
say $m.Str; # 7
say $m.from; # 5
say $m.to; # 6Pozicioj estas kalkulataj ekde nulo, do la cifero 7
sidas ĉe indekso 5.
Kiam la regulesprimo ne kongruas, la rezulto tute ne
estas kongrua objekto — ĝi estas la speciala valoro Nil.
Atribui Nil al skalaro lasas ĝin nedifinita:
my $m = 'abc' ~~ /z/;
say $m.defined; # FalseDo vi ĉiam povas kontroli .defined (aŭ simple uzi la
valoron en Boolea kunteksto) antaŭ ol legi la kongruintan tekston.
Praktiko
Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.
Kursa navigado
← Kvizo — Sagaca kongruigo | Kvizo — Kongruigo →
💪 Aŭ iru rekte al la
ekzercoj de ĉi tiu sekcio.