Cursus Raku / Reguliere expressies en grammatica’s / Grammatica’s / Wat is een grammatica

Benoemde reguliere expressies

Tot nu toe schreef je patronen rechtstreeks binnen / … /. Je kunt een patroon ook een naam geven en het hergebruiken, net als een subroutine. Declareer er een met my regex (of my token, dat je binnenkort naar behoren tegenkomt):

my regex number { \d+ }

Om een benoemde regex binnen een ander patroon te gebruiken, schrijf je zijn naam tussen punthaken, <number>:

my regex number { \d+ }

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

<number> aanroepen matcht het patroon en captureert het onder die naam, dus is de gematchte tekst beschikbaar als $<number> — een benoemde capture die je er gratis bij krijgt.

Een benoemde regex kan in één patroon meerdere keren gebruikt worden. Wanneer hij meer dan één keer voorkomt, worden de captures een lijst die je op index bereikt:

my regex num { \d+ }

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

Benoemde regexes houden patronen leesbaar en laten je grotere patronen bouwen uit kleinere, goed benoemde onderdelen. Precies dat is wat een grammatica op grotere schaal doet.

Praktijk

Maak de 1 quiz over de inhoud van dit onderwerp.

Cursusnavigatie

Wat is een grammatica   |   Quiz — Benoemde reguliere expressies


💪 Of ga direct naar de oefeningen in deze sectie.