Cursus Raku / Reguliere expressies en grammatica’s / Reguliere expressies / Literalen en tekenklassen
Letterlijke tekst matchen
Het eenvoudigste patroon is een reeks letters en cijfers. Zo’n patroon matcht precies die tekens, in die volgorde, ergens in de string:
say 'the cat sat' ~~ /cat/; # 「cat」
say 'Hello' ~~ /ell/; # 「ell」De match hoeft niet aan het begin van de string te beginnen — de regex-engine zoekt het patroon op elke positie tot ze het vindt.
Een geslaagde match levert een Match-object op. Die
「cat」 in het eerste voorbeeld is hoe zo’n object eruitziet
wanneer het afgedrukt wordt: say toont een
Match als de tekst die hij matchte, omgeven door de
hoekhaken 「 」. Als het patroon niet aanwezig is, mislukt de
match: de smartmatch levert Nil op, een ongedefinieerde
waarde die in een booleaanse test als onwaar telt:
say ('the cat sat' ~~ /dog/); # Nil
say ('the cat sat' ~~ /dog/).Bool; # FalseBinnen een regex zijn spaties standaard niet
betekenisvol — ze staan er alleen om het patroon leesbaar te maken. Dus
/ ell / matcht precies wat /ell/ zou matchen;
de omringende spaties worden eenvoudigweg genegeerd:
say 'Hello' ~~ / ell /; # 「ell」Omdat een spatie in het patroon genegeerd wordt, heb je voor het matchen van een echte spatie aanhalingstekens nodig: alles wat je tussen aanhalingstekens zet wordt letterlijk gematcht. Datzelfde aanhalen is ook hoe je een leesteken matcht dat anders een bijzondere betekenis in een regex zou hebben:
say 'a b' ~~ / 'a b' /; # 「a b」
say 'price: $5' ~~ / '$' /; # 「$」(Voor witruimte kun je ook de klasse \s gebruiken, die
je zo tegenkomt.)
Cursusnavigatie
← Literalen en tekenklassen | Tekenklassen →
💪 Of ga direct naar
de oefeningen in deze sectie.