Raku-Kurs / Reguläre Ausdrücke und Grammatiken / Reguläre Ausdrücke / Quantoren / Exercises / Zwei bis vier Ziffern
Lösung: Zwei bis vier Ziffern
Hier ist eine mögliche Lösung der Aufgabe.
Code
say 'abc12345' ~~ / \d ** 2..4 /;🦋 Du findest den Quellcode in der Datei two-to-four-digits.raku.
Ausgabe
「1234」Kommentare
\d ** 2..4trifft zwischen zwei und vier Ziffern in Folge.Die Zeichenkette hat fünf Ziffern zu bieten, der Bereich deckelt den Treffer aber bei vier, das Muster nimmt also
1234und lässt die letzte5liegen. Gierig wie es ist, nimmt es das Meiste, was der Bereich zulässt, und nicht das Wenigste.Gier gilt nur innerhalb eines einzelnen Treffers — die Maschine hält weiterhin an der ersten Stelle an, an der das Muster gelingt. Selbst wenn später in der Zeichenkette eine längere Ziffernfolge steht, wird sie nie erreicht:
say 'abc123def6789012z' ~~ / \d ** 2..4 /; # 「123」
Hier wird
123getroffen, obwohl die spätere Folge6789012den ganzen Bereich mit6789gefüllt hätte. Der am weitesten links stehende Treffer gewinnt.