preg_replace: schlechte regex == 'Unbekannter Modifikator'?

8

Ich stelle falsche E-Mail-Adressen auf und möchte nur sicherstellen, dass sie in einem gültigen E-Mail-Format vorliegen. Daher versuche ich, alle Zeichen zu entfernen, die nicht in der folgenden Liste enthalten sind:

%Vor%

Ich hatte keine Probleme auf meinem Windows-Rechner, aber auf dem Linux-Dev-Server bekomme ich diesen Fehler jedes Mal, wenn dieser Code läuft:

%Vor%

Ich denke, es ist die Regex-Zeichenfolge, aber ich kann es nicht festhalten. Kleine Hilfe? Danke.

Klarstellung: Ich versuche nicht, alle gültigen E-Mail-Adressen zu berücksichtigen (für meinen Zweck unnötig), ich muss nur herausfinden, was mit meiner preg_replace-Regex nicht stimmt.

    
doub1ejack 04.10.2011, 19:30
quelle

4 Antworten

26

g ist kein gültiger Modifikator in PCRE (die Regex-Implementierung, die PHP verwendet), weil es einfach nicht benötigt wird; preg_replace() führt standardmäßig globale Ersetzungen durch. Sie finden den Modifikator sowohl in True Perl Regex als auch in JavaScript Regex, aber nicht in PCRE.

Geben Sie einfach g :

ein %Vor%     
BoltClock 04.10.2011, 19:31
quelle
3

Sie haben einen ungültigen PCRE-Modifikator. Hier ist die Liste der gültigen PCRE-Modifikatoren:

Ссылка

Der Modifizierer g (global) ist standardmäßig aktiviert , Sie brauchen ihn also nicht.

    
qJake 04.10.2011 19:32
quelle
3

Das Problem ist, dass g kein gültiger PCRE-Modifikator ist . Schau dir preg_match_all an.

    
user554546 04.10.2011 19:33
quelle
3

Zusätzlich zu / g scheint der innere Teil Ihrer regulären Ausgabe auch nicht gültig zu sein:

%Vor%

Erstens ist das "^" (welches der Start-of-Input-Metachar ist) innerhalb von [...] keinen Sinn (es sei denn, Sie erlauben E-Mail-Adressen, die "^" enthalten). Zweitens sollte der Bindestrich entweder entfernt oder an das Ende der Gruppe gesetzt werden, andernfalls wird er als Bereichsoperator behandelt. Und am wichtigsten, Ihr Ausdruck verbietet eine breite Palette von vollkommen gültigen E-Mail-Adressen. Sehen Sie sich einige Beispiele an.

    
user187291 04.10.2011 19:51
quelle

Tags und Links