00 Stimmen

PHP: preg_match - Unknown Modifier Fehler obwohl regulärer Ausdruck korrekt

Frage von Gast | 04.03.2014 um 19:19

Obwohl ich in meinem PHP-Skript einen korrekten regulären Ausdruck verwende, bekomme ich ständig folgenden Fehler:

Warning: preg_match() [function.preg-match]: Unknown modifier '@'

Ich verwende folgenden Aufruf der Funktion:

preg_match("^[^@]+@[^@]+$", $str)

Leider kann ich beim besten Willen keinen Fehler entdecken, in anderen Programmen funktioniert dieser RegEx. Kann mir jemand helfen?

AntwortenPositivNegativ
Avatar
1Beste Antwort3 Stimmen

Du musst den regulärer Ausdruck mit einem Delimiter (auf Deutsch so etwas wie Trennzeichen, Begrenzungszeichen) umranden. Mögliche Delimiter sind zum Beispiel "/", "~" oder "#".

So sollte es funktionieren:

preg_match("/^[^@]+@[^@]+$/", $str)
preg_match("~^[^@]+@[^@]+$~", $str)
preg_match("#^[^@]+@[^@]+$#", $str)

Du kannst im Prinzip jedes Zeichen verwenden, das nicht alphanumerisch ist. Ein Backslash oder Whitespace ist aber auch nicht erlaubt.

Innerhalb des regulären Ausdrucks muss dein verwendeter Delimiter mit escaped werden, daher bietet es sich an einen Delimiter zu wählen, der nicht im regulären Ausdruck vorkommt.

Modifier für deinen regulären Ausdruck kommen dann hinter den Delimiter:

preg_match("/^[^@]+@[^@]+$/i", $str)

Mehr dazu gibts auf der offiziellen PHP Seite.
06.03.2014 um 17:51

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.