Raku-Kurs / Reguläre Ausdrücke und Grammatiken / Reguläre Ausdrücke / Ersetzung und Austausch
Captures in der Ersetzung
Der Ersatzteil von s/// kann sich auf die Captures
beziehen, die das Muster gemacht hat. So können Sie den getroffenen Text
umstellen, statt ihn einfach wegzuwerfen.
Machen Sie etwa aus einem als Jahr-Monat geschriebenen
Datum ein Monat/Jahr, indem Sie beide Zahlen capturen und
in der anderen Reihenfolge wieder einsetzen:
my $d = '2025-06';
$d ~~ s/ (\d+) '-' (\d+) /$1\/$0/;
say $d; # 06/2025Das Muster capturt das Jahr in $0 und den Monat in
$1. In der Ersetzung stehen $1 und
$0 in umgekehrter Reihenfolge, mit einem Schrägstrich
dazwischen. (Der Schrägstrich ist als \/ maskiert, damit er
nicht für das Ende der Ersetzung gehalten wird.) Beachten Sie, dass
Leerzeichen auf der Musterseite unbedeutend sind, auf
der Ersatzseite aber wörtlich, die Ersetzung ist also
ohne umgebende Leerzeichen geschrieben.
Benannte Captures funktionieren genauso. Das lässt eine Ersetzung auch dann klar lesen, wenn es mehrere Teile gibt:
my $name = 'Doe, Jane';
$name ~~ s/ $<last>=(\w+) ', ' $<first>=(\w+) /$<first> $<last>/;
say $name; # Jane DoeKursnavigation
← Quiz — Der s///-Operator | Transliteration →
💪 Oder springen Sie direkt zu den Übungen dieses
Abschnitts.