Kurso de Raku / Regulesprimoj kaj gramatikoj / Regulesprimoj / Kaptoj

Poziciaj kaptoj

Metu parton de la ŝablono en rondajn krampojn ( ) por kapti ĝin. Post sukcesa kongruo, ĉiu kaptita peco disponeblas kiel $0, $1 kaj tiel plu, numerita ekde nulo laŭ la ordo, en kiu la krampoj malfermiĝas:

if '2025-06' ~~ / (\d+) '-' (\d+) / {
    say $0; # 「2025」
    say $1; # 「06」
}

La unua paro de krampoj kaptis la jaron en $0, la dua kaptis la monaton en $1. La teksto inter ili — la laŭlitera - — estas kongruita sed ne kaptita.

Ĉiu kapto estas mem malgranda kongrua objekto, do vi povas peti al ĝi sian .Str, sian pozicion kaj tiel plu. En ĉeno kun duoblaj citiloj kapto interpoliĝas kiel sia kongruinta teksto:

if 'hello world' ~~ / (\w+) ' ' (\w+) / {
    say "$1 $0"; # world hello
}

Ĉi tie la du kaptitaj vortoj estas presataj en la mala ordo, kio interŝanĝas ilin.

La kaptoj estas ankaŭ konservataj en la kongrua variablo $/, kaj $0 efektive estas mallonga maniero skribi $/[0]. Vi povas labori tra $/ rekte:

if '2025-06' ~~ / (\d+) '-' (\d+) / {
    say $/[0];    # 「2025」
    say $/[1];    # 「06」
    say $/.elems; # 2
}

$/ estas la tuta kongrua objekto, indeksi ĝin atingas la poziciajn kaptojn, kaj .elems diras al vi, kiom da ili estas.

Praktiko

Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.

Kursa navigado

Kaptoj   |   Kvizo — Poziciaj kaptoj


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