# 6.2.7 Zusammenfassung der Syntax

In der Tabelle wird die bisherige Syntax zusammengefasst dargestellt. Es handelt sich hierbei um einen Ausschnitt aus einer weit umfangreicheren Syntax.

Tabelle: Syntax regulärer Ausdrücke für PHP

Übersicht Sonderzeichen | Erklärung
--- | ---
`( )` | Gruppiert die Elemente zu einem einzigen Element. Es muss eine Übereinstimmung in der Reihenfolge mit allen Elementen vorliegen, z.B. `(tee)`.
`(...|...|...)` | Verbindet die Gruppierung mit der alternativen Auswahl, gekennzeichnet durch das Pipe-Zeichen `|`, z.B. `(tee|tea|te)`.
`[ ]` | Bezeichnet eine Klasse von Elementen, die erkannt werden sollen. Es muss eine Übereinstimmung mit nur einem der Elemente vorliegen, z.B. `[0-9]`. Sonderzeichen der Mengenklammer sind `[^ - / \]`, alle anderen Zeichen haben keine Sonderfunktion.
`[^ ]` | Bezeichnet eine negierte Klasse von Elementen. Das Zeichen `^` negiert die gesamte Klasse. Anmerkung: Der Operator gilt für die Negation nur in der Mengenklammer `[ ]`, z.B. `[^0-9]`.
`\d` bzw. Negation `\D` | Digit (entsprechend `[0-9]`) bzw. nicht Digit (entsprechend `[^0-9]`).
`\w` bzw. Negation `\W` | Alphanumerische Zeichen (Wort) entsprechend `[a-zA-Z0-9_]` bzw. nicht alphanumerische Zeichen entsprechend `[^a-zA-Z0-9_]`.
`\s` bzw. Negation `\S` | Whitespace (Leerzeichen und Tabulator) bzw. nicht whitespace.
`\b` bzw. Negation `\B` | Wortgrenze (`b` = boundary) bzw. nicht Wortgrenze. Bei der Wortgrenze handelt es sich nicht um ein eigenes Zeichen, sondern nur um eine Markierung. Eine Wortgrenze ist definiert als Übergang zwischen einem `\W`-Zeichen und einem `\w`-Zeichen (also vor einem `\w`-Zeichen oder hinter einem `\w`-Zeichen).
`.` | Der „Punkt“ steht für ein beliebiges Zeichen (Ausnahme: Zeilenumbruch Newline).
`{n,m}` | Wiederholungsintervall (gierig). `{n}` genau n-mal `{n,}` mindestens n-mal `{,m}` maximal m-mal `{n,m}` mindestens n-mal und maximal m-mal
`{n,m}?` | Wiederholungsintervall (nicht-gierig).
`?` | Das vorstehende Zeichen 0 oder 1-mal (gierig).
`+` | Das vorstehende Zeichen 1-mal oder beliebig oft (gierig).
`*` | Das vorstehende Zeichen 0-mal oder beliebig oft (gierig).
`??` | Das vorstehende Zeichen 0 oder 1-mal (nicht-gierig).
`+?` | Das vorstehende Zeichen 1-mal oder beliebig oft (nicht-gierig).
`*?` | Das vorstehende Zeichen 0-mal oder beliebig oft (nicht-gierig).
`^` | Markiert, dass der Suchausdruck am Anfang stehen muss. Im Mehrzeilenmodus wird auch jedes Newline-Zeichen erkannt.
`$` | Erkennt das Zeilenende bzw. das Zeichen unmittelbar vor dem letzten Newline-Zeichen.
`/ /i` | Modifikator: Groß-/Kleinschreibung ignorieren.
`/ /s` | Modifikator: Single-line-Mode: Zeichenketten als eine einzige Zeile betrachten. Der Punkt-Operator gilt auch für das Newline-Zeichen.
`/ /x` | Modifikator: Ignoriert Whitespace und erlaubt Kommentare (#). So kann bei längeren Suchmustern eine Formatierung zur besseren Lesbarkeit des Suchmusters vorgenommen werden, indem das Suchmuster über mehrere Zeilen geschrieben wird.
`/ /u` | Modifikator: Schaltet UTF-8 an und damit enthält `\w` auch Umlaute.

Wer sich mehr mit der Syntax beschäftigen möchte:

- Wikibooks
- RegExp Evaluator Tutorial
- Sehr viele, professionelle Beispiele finden sind im Buch: Goyvaerts, Jan; Levithan, Steven: Reguläre Ausdrücke Kochbuch. [detaillierte Lösungen für acht Programmiersprachen; mit Einstiegs-Tutorial]. O'Reilly Verlag.
- Stubblebine, Tony; Klicman, Peter; Schulten, Lars: Reguläre Ausdrücke. Kurz & gut. O'Reilly Verlag.

Und wer reguläre Ausdrücke aus Sicht der theoretischen Informatik kennen lernen möchte, der möge sich das folgende Video ansehen:

- Theoretische Informatik Video