Cursus Raku / Reguliere expressies en grammatica’s / Reguliere expressies / Strings matchen
De smartmatch-operator
De operator die een regex op een string toepast is de smartmatch
~~:
say 'the cat sat' ~~ /cat/; # 「cat」Een patroon tussen schuine strepen is de gebruikelijkste vorm, maar er zijn er nog twee die hetzelfde betekenen en soms duidelijker zijn:
say 'the cat sat' ~~ m/cat/; # 「cat」
say 'the cat sat' ~~ rx/cat/; # 「cat」De vorm m/.../ benadrukt dat je aan het matchen
bent, en is handig wanneer je opties aan de match wilt toevoegen (die
opties, bijwoorden genoemd,
kom je later tegen). De vorm rx/.../ bouwt een regexwaarde
zonder hem al te matchen.
Heel vaak geeft het je alleen om de vraag of de string matchte, niet
om wat er precies gevonden is. Omdat een geslaagde match een ware waarde
is en een mislukte match onwaar, kun je het resultaat rechtstreeks in
een booleaanse context gebruiken. De nette manier om een simpele
True of False te krijgen is de functie
so:
say so 'the cat sat' ~~ /cat/; # True
say so 'the cat sat' ~~ /dog/; # FalseZo wordt een regex een natuurlijke voorwaarde voor
if:
if 'the cat sat' ~~ /cat/ {
say 'found it'; # found it
}Praktijk
Maak de 1 quiz over de inhoud van dit onderwerp.
Cursusnavigatie
← Strings matchen | Quiz — Smartmatch →
💪 Of ga direct naar
de oefeningen in deze sectie.