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.
| Zeichen | Bezeichnung | Verwendet im Evaluator | Anteil |
|---|---|---|---|
| @ | at | 14636 mal | 14,3% |
| & | Ampersand | 14611 mal | 14,3% |
| / | Slash | 14594 mal | 14,3% |
| ~ | Tilde | 14572 mal | 14,3% |
| # | Raute | 14564 mal | 14,3% |
| ! | Ausrufezeichen | 14528 mal | 14,2% |
| = | Gleichheitszeichen | 14511 mal | 14,2% |
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:
- man benutzt ein anderes Zeichen als Delimiter - was wohl die einfachste und gängigste Möglichkeit ist - oder
- man maskiert das entsprechende Zeichen, indem man ihm einen Backslash voranstellt und damit seine Bedeutung als Delimiter aufhebt.
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
- Aufbau von Regulären Ausdrücken
- Delimiter must not be alphanumeric or backslash
- Der Backslash
- Fehlermeldungen
- No ending delimiter found
Kapitelnavigation
- Letzte Änderung: 05.04.2012, 16:11:10
- © 2003 - 2012 nophia web