Raku-Kurs / Reguläre Ausdrücke und Grammatiken / Reguläre Ausdrücke / Literale und Zeichenklassen
Zeichenklassen
Oft möchten Sie kein festes Zeichen treffen, sondern ein beliebiges
Zeichen aus einer Menge. Eine solche Menge heißt Zeichenklasse
und wird zwischen <[ und ]>
geschrieben:
say 'grey' ~~ / gr <[ae]> y /; # 「grey」
say 'gray' ~~ / gr <[ae]> y /; # 「gray」Die Klasse <[ae]> trifft ein einzelnes Zeichen,
das entweder a oder e ist, beide Schreibweisen
der Farbe werden also getroffen.
Innerhalb der Klammern können Sie mit zwei Punkten einen Bereich angeben:
say 'a1b2' ~~ / <[0..9]> /; # 「1」<[0..9]> trifft eine beliebige Ziffer; die erste
Ziffer in der Zeichenkette ist 1.
Um jedes Zeichen zu treffen, das nicht in der Menge ist, setzen Sie ein Minuszeichen direkt hinter die öffnende Klammer:
say 'stop!' ~~ / <-[a..z]> /; # 「!」Hier trifft <-[a..z]> das erste Zeichen, das kein
Kleinbuchstabe ist, nämlich das Ausrufezeichen.
Sie können mehrere Teile in einer Klasse verbinden. So trifft
<[a..z A..Z 0..9]> einen Buchstaben oder eine Ziffer.
Die Leerzeichen dort dienen nur der Lesbarkeit — wie überall in einem
Regex werden Leerzeichen innerhalb von <[…]>
übergangen, <[a..zA..Z0..9]> ist also genau dieselbe
Klasse.
Praxis
Lösen Sie 1 Quiz zum Inhalt dieses Themas.
Kursnavigation
← Wörtlichen Text finden | Quiz — Eigene Klassen →
💪 Oder springen Sie direkt zu den Übungen dieses
Abschnitts.