Raku-Kurs / Reguläre Ausdrücke und Grammatiken / Grammatiken / Token und Regeln / Exercises / Regex gegen Token
Lösung: Regex gegen Token
Hier ist eine mögliche Lösung der Aufgabe.
Code
my regex r { \d+ '5' }
my token t { \d+ '5' }
say so '12345' ~~ / <r> /;
say so '12345' ~~ / <t> /;🦋 Du findest den Quellcode in der Datei token-instead.raku.
Ausgabe
True
FalseKommentare
Im
regexgreift sich\d+zuerst das ganze12345und weicht dann zurück — es gibt die letzte5her, damit die wörtliche5treffen kann. Der Regex gelingt also.Das
tokenweigert sich, etwas herzugeben:\d+behält das ganze12345, die wörtliche5findet nichts mehr vor, und das Token scheitert. Genau dieses Verhalten ohne Zurückweichen machttokenzur richtigen Standardwahl innerhalb von Grammatiken.