Kurso de Raku / Regulesprimoj kaj gramatikoj / Gramatikoj / Kio estas gramatiko

Nomitaj regulesprimoj

Ĝis nun vi skribis ŝablonojn rekte ene de / … /. Vi ankaŭ povas doni al ŝablono nomon kaj reuzi ĝin, same kiel subrutinon. Deklaru unu per my regex (aŭ my token, kiun vi ĝuste renkontos baldaŭ):

my regex number { \d+ }

Por uzi nomitan regulesprimon ene de alia ŝablono, skribu ĝian nomon en angulaj krampoj, <number>:

my regex number { \d+ }

if '42 cats' ~~ / <number> / {
    say $<number>; # 「42」
}

Voki <number> kaj kongruas kun la ŝablono kaj kaptas ĝin sub tiu nomo, do la kongruinta teksto disponeblas kiel $<number> — nomita kapto, kiun vi ricevas senpage.

Nomita regulesprimo povas esti uzata plurfoje en unu ŝablono. Kiam ĝi aperas pli ol unufoje, la kaptoj fariĝas listo, atingata laŭ indekso:

my regex num { \d+ }

if '3-4' ~~ / <num> '-' <num> / {
    say $<num>[0]; # 「3」
    say $<num>[1]; # 「4」
}

Nomitaj regulesprimoj tenas ŝablonojn legeblaj kaj permesas al vi konstrui pli grandajn el pli malgrandaj, bone nomitaj partoj. Ĝuste tion faras gramatiko en pli granda skalo.

Praktiko

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

Kursa navigado

Kio estas gramatiko   |   Kvizo — Nomitaj regulesprimoj


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