Begrenzungszeichen - Delimiter

Delimiter (engl. to delimit ⇒ einschränken, begrenzen) dienen in der Sprache PHP zum Abgrenzen des Suchmusters vom Rest des Regulären Ausdrucks. Als Delimiter kann theoretisch jedes nicht-alphanumerische Zeichen außer dem Backslash verwendet werden.

Delimiter sind in PHP notwendig, da hinter dem eigentlichen Suchmuster noch sogenannte Modifier notiert werden können, die das Verhalten des Ausdrucks beeinflussen können.

In der folgenden Tabelle sind ein paar der möglichen Delimiter aufgeführt.

Liste gängiger Begrenzungszeichen
Zeichen Bezeichnung Verwendet im Evaluator Anteil
/ Slash 358058 mal 23,4%
@ at 227741 mal 14,9%
! Ausrufezeichen 227612 mal 14,9%
# Raute 227517 mal 14,9%
~ Tilde 227022 mal 14,8%
& Ampersand 226777 mal 14,8%
= Gleichheitszeichen 36374 mal 2,4%

Sollten Sie selbst einen Delimiter benutzen, der nicht in der Liste aufgeführt ist, so teilen Sie mir das doch bitte mit, ich würde ihn dann gern der Vollständigkeit halber dieser Liste hinzufügen.

Delimiter als Zeichen im Suchmuster

Das als Delimiter verwendete Zeichen sollte sinnigerweise nicht im eigentlichen Suchmuster auftauchen, da es sonst als Delimiter interpretiert werden würde. Soll dieses Zeichen trotzdem im Suchmuster verwendet werden, gibt es zwei Möglichkeiten:

Fehlerquellen

Ein häufig auftretender Fehler ist das Weglassen der Delimiter. In diesem Falle gibt es (bis auf Ausnahmen) eine Fehlermeldung seitens PHP. Das Verwenden des Delimiters innerhalb des Suchmusters produziert ebenso eine Fehlermeldung. Welche das im Einzelfall ist, hängt von der Struktur des Regulären Ausdrucks ab. So erhält man bei einem vergessenen Delimiter in diesem Falle abcde@domain\.com die Fehlermeldung Delimiter must not be alphanumeric or backslash, da sowohl der einleitende als auch der schließende Delimiter ein alphanumerisches Zeichen sind - nämlich ein a (erstes Zeichen) beziehungsweise ein m (letztes Zeichen).

Im folgenden Beispiel @domain\.com aber erhält man die Fehlermeldung No ending delimiter found, da das erste Zeichen des Regulären Ausdrucks durchaus ein erlaubter Delimiter ist, aber kein abschließender Delimiter gleicher Art gefunden wurde.

Verwandte Themen
Kapitelnavigation