Raku-Kurs / Reguläre Ausdrücke und Grammatiken / Reguläre Ausdrücke / Zeichenketten abgleichen
Der Smartmatch-Operator
Der Operator, der einen Regex auf eine Zeichenkette anwendet, ist der
Smartmatch ~~:
say 'the cat sat' ~~ /cat/; # 「cat」Ein Muster zwischen Schrägstrichen ist die häufigste Form, doch es gibt zwei weitere, die dasselbe bedeuten und manchmal klarer sind:
say 'the cat sat' ~~ m/cat/; # 「cat」
say 'the cat sat' ~~ rx/cat/; # 「cat」Die Form m/.../ betont, dass Sie treffen, und
ist praktisch, wenn Sie dem Treffer Optionen mitgeben möchten (diese
Optionen, Adverbien genannt,
begegnen Ihnen später). Die Form rx/.../ erzeugt einen
Regex-Wert, ohne ihn schon anzuwenden.
Sehr oft interessiert Sie nur, ob die Zeichenkette getroffen hat, und
nicht, was genau gefunden wurde. Da ein erfolgreicher Treffer ein wahrer
Wert ist und ein fehlgeschlagener falsch, können Sie das Ergebnis
unmittelbar in einem Wahrheitszusammenhang verwenden. Am saubersten
erhalten Sie ein schlichtes True oder False
mit der Funktion so:
say so 'the cat sat' ~~ /cat/; # True
say so 'the cat sat' ~~ /dog/; # FalseDamit wird ein Regex zu einer natürlichen Bedingung für
if:
if 'the cat sat' ~~ /cat/ {
say 'found it'; # found it
}Praxis
Lösen Sie 1 Quiz zum Inhalt dieses Themas.
Kursnavigation
← Zeichenketten abgleichen | Quiz — Smartmatch →
💪 Oder springen Sie direkt zu den Übungen dieses
Abschnitts.