Raku-Kurs / Reguläre Ausdrücke und Grammatiken / Grammatiken / Der Parsebaum, make und made / Exercises / Extrahieren Sie die Zahl

Lösung: Extrahieren Sie die Zahl

Hier ist eine mögliche Lösung der Aufgabe.

Code

grammar Weight {
    token TOP    { <number> 'kg' { make $<number>.Int } }
    token number { \d+ }
}

say Weight.parse('5kg').made;

🦋 Du findest den Quellcode in der Datei extract-the-number.raku.

Ausgabe

5

Kommentare

  1. Das Muster trifft die Ziffern und das wörtliche kg, der inline stehende Block legt aber nur $<number>.Int ab — die ganze Zahl, ohne die Einheit.

  2. made liest diesen Wert zurück: eine echte 5, bereit zum Rechnen, statt des Textes 5kg. Das ist die typische Aufgabe von make — einen Treffer in den sauberen Wert zu verwandeln, den Sie tatsächlich wollen.

Kursnavigation

Extrahieren Sie die Zahl   |   Multiplizieren Sie ein Paar