Aufbau von Regulären Ausdrücken

Reguläre Ausdrücke sind immer nach einem bestimmten Muster aufgebaut. Genau genommen besteht ein Regulären Ausdruck (in der Script-Sprache PHP) aus drei Teilen - den Delimitern, dem eigentlichen Suchmuster und den Modifiern, im folgenden noch einmal schematisch dargestellt: Delimiter Suchmuster Delimiter Modifier Was es mit den einzelnen Teilen auf sich hat, soll auf dieser und den folgenden Seiten erklärt werden.

Die Delimiter

Delimiter (engl. to delimit ⇒ einschränken, begrenzen) grenzen in Regulären Ausdrücken (in der Sprache PHP) das Suchmuster vom Rest des Ausdrucks ab. Das ist notwendig, da neben dem eigentlichen Suchmuster durch bestimmte Schalter - den sogenannten Modifiern - noch gewisse Optionen gesetzt werden können und der PHP-Interpreter irgendwie zwischen Suchmuster und Modifiern unterscheiden muss.

Als Delimiter kann quasi jedes nicht-alphanumerische Zeichen außer dem Backslash verwendet werden. Nähere Erläuterungen dazu finden sich im Kapitel Delimiter.

Das Suchmuster (Pattern)

Dies ist der eigentliche Reguläre Ausdruck, der sämtliche Elemente der formalen Sprache RegExp enthalten kann. Hier können normale (statische) Texte, Metazeichen, aber auch Zeichenklassen verwendet werden, um bestimmte Gruppen von Zeichen zu definieren (z.B. die Buchstaben von a-f, nur Vokale, alle Nicht-Ziffern u.s.w.). Teile des Suchmuster können gruppiert werden, um später auf sie zurückgreifen zu können, es können Gruppen über Bedingungen verknüpft werden und vieles mehr. Details finden sich jeweils in den einzelnen Kapiteln.

Die Modifier

Mit Modifiern (engl.: to modify ⇒ verändern, modifizieren) läßt sich das Verhalten des Regulären Ausdrucks zusätzlich beeinflussen. So kann man z.B. festlegen, dass nicht zwischen Groß- und Kleinschreibung unterschieden wird oder das bei mehreren Möglichkeiten möglichst wenig gefunden wird. Weitere Informationen zu den Modifiern findet sich im entsprechenden Kapitel.

Beispiele

Hier möchte ich noch ein paar Beispiele für gültige und ungültig RegExp-Syntax aufführen. Die ganzen kryptischen Zeichen, die Ihnen eventuell nichtssagend vorkommen, werden in späteren Kapiteln erläutert, hier geht es lediglich um die Grundstruktur der Regulären Ausdrücke.

Gültige Reguläre Ausdrücke

Nachfolgende Ausdrücke verwenden gültige Syntax: #abcdefg#Uis !^(.*)-(.+)-([abc])!im ~\D{3,7}~ Aufmerksame Beobachter werden bemerken, dass im dritten Beispiel keine Modifier angegeben wurden. Das ist durchaus erlaubt, es werden dann einfach die Standard-Einstellungen verwendet.

Ungültige Reguläre Ausdrücke

Hier noch ein paar Beispiele, deren Grundaufbau schon falsch ist und die dadurch eine Fehlermeldung erzeugen würden. abcdefg#Uis Bei obenstehenden Regulärem Ausdruck fehlt der einleitende Delimiter, PHP würde dies mit der Fehlermeldung Delimiter must not be alphanumeric or backslash quitieren. #abcdefgUis Dies wäre der umgekehrte Fall, hier fehlt der abschließende Delimiter. PHP würde sich in diesem Fall wieder mit einer Fehlermeldung melden, diesmal wäre das No ending delimiter found.

Verwandte Themen
Kapitelnavigation