Kurso de Raku / Regulesprimoj kaj gramatikoj / Regulesprimoj / Anstataŭigo kaj interŝanĝo

Kaptoj en la anstataŭaĵo

La anstataŭa parto de s/// povas referenci la kaptojn faritajn de la ŝablono. Tio permesas al vi rearanĝi la kongruintan tekston anstataŭ nur forĵeti ĝin.

Ekzemple, transformu daton skribitan kiel year-month en month/year, kaptante ambaŭ nombrojn kaj remetante ilin en la alia ordo:

my $d = '2025-06';
$d ~~ s/ (\d+) '-' (\d+) /$1\/$0/;
say $d; # 06/2025

La ŝablono kaptas la jaron en $0 kaj la monaton en $1. En la anstataŭaĵo, $1 kaj $0 estas skribitaj en la inversa ordo, kun oblikvo inter ili. (La oblikvo estas eskapita kiel \/, por ke ĝi ne estu konfuzita kun la fino de la anstataŭigo.) Notu, ke spacoj estas nesignifaj ĉe la ŝablona flanko sed laŭliteraj ĉe la anstataŭa flanko, do la anstataŭaĵo estas skribita sen spacoj ĉirkaŭ ĝi.

Nomitaj kaptoj funkcias same. Tio igas anstataŭigon legiĝi klare eĉ kiam estas pluraj pecoj:

my $name = 'Doe, Jane';
$name ~~ s/ $<last>=(\w+) ', ' $<first>=(\w+) /$<first> $<last>/;
say $name; # Jane Doe

Kursa navigado

Kvizo — La operatoro s///   |   Transliterumo


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