Raku-Kurs / Reguläre Ausdrücke und Grammatiken / Reguläre Ausdrücke / Captures
Benannte Captures
Nummerierte Captures sind praktisch, aber wenn ein Muster wächst,
sind Namen klarer als Nummern. Um einem Capture einen Namen zu geben,
schreiben Sie $<name>=( … ):
if 'Anna:30' ~~ / $<name>=(\w+) ':' $<age>=(\d+) / {
say $<name>; # 「Anna」
say $<age>; # 「30」
}Die gecapturten Stücke sind nun über $<name> und
$<age> namentlich erreichbar statt über
$0 und $1. Das ist dasselbe wie
$/<name> zu schreiben, denn die Namen leben in der
Match-Variablen $/.
Benannte Captures lassen ein Muster fast wie eine Beschreibung der Daten lesen:
if 'x=5' ~~ / $<key>=(\w+) '=' $<value>=(\w+) / {
say "key is $<key>, value is $<value>"; # key is x, value is 5
}Wie bei positionalen Captures ist jedes benannte Capture ein
Match-Objekt, $<age>.Str liefert also den blanken
Text und $<age>.from seine Position.
Praxis
Lösen Sie 1 Quiz zum Inhalt dieses Themas.
Kursnavigation
← Quiz — Positionelle Captures | Quiz — Captures →
💪 Oder springen Sie direkt zu den Übungen dieses
Abschnitts.