# 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