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.