Corso di Raku / Espressioni regolari e grammatiche / Grammatiche / Token e regole / Exercises / Regex contro token
Soluzione: Regex contro token
Ecco una possibile soluzione del compito.
Codice
my regex r { \d+ '5' }
my token t { \d+ '5' }
say so '12345' ~~ / <r> /;
say so '12345' ~~ / <t> /;🦋 Trova il programma nel file token-instead.raku.
Output
True
FalseCommenti
Nel
regex,\d+afferra dapprima tutto12345, poi torna sui propri passi — restituendo il5finale perché il5letterale possa corrispondere. Quindi il regex riesce.Il
tokenrifiuta di restituire alcunché:\d+tiene tutto12345, il5letterale non trova più nulla e il token fallisce. Questo comportamento senza backtracking è esattamente il motivo per cuitokenè la scelta predefinita giusta dentro le grammatiche.