6.2.2 Sonderzeichen
Es gibt viele verschiedene Sonderzeichen. Dies ist die Herausforderung beim Erlernen regulärer Ausdrücke. Aber wenn man es kann, macht es Spaß und ist nützlich.
Zeichenklassen für Wörter, Zahlen etc.
Einige Mengen kommen sehr oft vor, beispielsweise die Menge aller Ziffern [0-9]. Für diese Menge wird nun ein abkürzendes Sonderzeichen \d eingeführt. Jedes dieser Sonderzeichen hat auch eine Negation. Z.B. entspricht \D der Menge [^0-9].
Sonderzeichen | Negation | Erklärung |
---|---|---|
\d | \D | Digit (entsprechend [0-9]) bzw. nicht Digit (entsprechend [^0-9]) |
\w | \W | Alphanumerische Zeichen (Wort) entsprechend [a-zA-Z0-9_] bzw. nicht alphanumerische Zeichen entsprechend [^a-zA-Z0-9_] |
\s | \S | Whitespace (Leerzeichen und Tabulator) bzw. nicht whitespace |
\b | \B | Wortgrenze (b =boundary) bzw. nicht Wortgrenze. Eine Wortgrenze ist definiert als \W Zeichen vor oder hinter einem \w-Zeichen. |
Text: Hier teste ich 1000 Texte
Suchmuster: /\d/
Ergebnis: Hier teste ich 1000 Texte
Text: Hier teste ich 1000 Texte
Suchmuster: /\w\w\w\s\d\d\d\d/
Ergebnis: Hier teste ich 1000 Texte
Bisher hat jedes Zeichen im Suchmuster immer genau auf ein Zeichen im Text gepasst. Dies ist mit \b nun erstmalig anders. \b findet die Wortgrenze, markiert aber kein einzelnes Zeichen.
Text: Hier teste ich 1000 Texte
Suchmuster: /\b\w\w\w\s\d\d\d\d\b/
Ergebnis: Hier teste ich 1000 Texte
Achtung
Deutsche Umlaute sind nicht in der Menge von \w enthalten und werden entsprechend als Wortgrenze angesehen. Umlaute sind „fies“ und darauf wird später noch eingegangen.
Sonderzeichen maskieren mit Backslash \
Der Backslash wird für Sonderzeichen wie z.B. \d = digit
genutzt und dient auch zur Maskierung von anderen vordefinierten Sonderzeichen in regulären Ausdrücken.
Text: Er hatte $-Zeichen
in den Augen
Suchmuster: /\$-Zeichen/
Ergebnis: Er hatte $-Zeichen
in den Augen
Text: Ich suche nach allen \d Sonderzeichen
Suchmuster: /\\d/
Ergebnis: Ich suche nach allen \d Sonderzeichen