Cursus Raku / Reguliere expressies en grammatica’s / Reguliere expressies / Literalen en tekenklassen

Tekenklassen

Vaak wil je niet één vast teken matchen maar elk teken uit een verzameling. Zo’n verzameling heet een tekenklasse en wordt tussen <[ en ]> geschreven:

say 'grey' ~~ / gr <[ae]> y /; # 「grey」
say 'gray' ~~ / gr <[ae]> y /; # 「gray」

De klasse <[ae]> matcht één teken dat ofwel a ofwel e is, dus beide spellingen van de kleur matchen.

Binnen de haken kun je met twee punten een bereik opsommen:

say 'a1b2' ~~ / <[0..9]> /; # 「1」

<[0..9]> matcht een willekeurig cijfer; het eerste cijfer in de string is 1.

Om elk teken te matchen dat niet in de verzameling zit, zet je een minteken direct achter de openingshaak:

say 'stop!' ~~ / <-[a..z]> /; # 「!」

Hier matcht <-[a..z]> het eerste teken dat geen kleine letter is, namelijk het uitroepteken.

Je kunt meerdere stukken in één klasse combineren. Zo matcht <[a..z A..Z 0..9]> een letter of een cijfer. De spaties daar zijn er alleen voor de leesbaarheid — zoals overal in een regex worden spaties binnen <[…]> genegeerd, dus <[a..zA..Z0..9]> is precies dezelfde klasse.

Praktijk

Maak de 1 quiz over de inhoud van dit onderwerp.

Cursusnavigatie

Letterlijke tekst matchen   |   Quiz — Eigen klassen


💪 Of ga direct naar de oefeningen in deze sectie.