Cursus Raku / Reguliere expressies en grammatica’s / Reguliere expressies / Alternatieven
Langste token en eerste match
Wanneer twee alternatieven allebei op dezelfde plek zouden kunnen
matchen, kiest de operator | degene die het
langste stuk tekst matcht. Dit heet longest-token
matching:
say 'catdog' ~~ / cat | catdog /; # 「catdog」Ook al staat cat eerst en zou het matchen,
| geeft de voorkeur aan het langere
catdog.
Soms wil je het tegenovergestelde — de alternatieven proberen in de
volgorde waarin je ze schreef en de eerste nemen die
matcht. Dat is wat de dubbele streep || doet:
say 'catdog' ~~ / cat || catdog /; # 「cat」Nu wordt cat als eerste geprobeerd en matcht het, dus
stopt de engine daar en overweegt ze catdog nooit.
Gebruik | (langste token) wanneer je de “beste” match
wilt ongeacht de volgorde — dat is de gewone keuze, en degene waar
grammatica’s op steunen. Gebruik || (eerste match) wanneer
de volgorde van de alternatieven betekenisvol is en je wilt dat eerdere
winnen.
Praktijk
Maak de 1 quiz over de inhoud van dit onderwerp.
Cursusnavigatie
← Quiz — Groeperen | Quiz — Alternatieven →
💪 Of ga direct naar de oefeningen in deze
sectie.