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/; # False

Damit 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.