PHP reguläre Ausdrücke: Kein Endbegrenzer '^' gefunden in


102

Ich habe Probleme mit regulären Ausdrücken.

Das ist mein Code

$pattern = "^([0-9]+)$";

if (preg_match($pattern, $input))
   echo "yes";
else
   echo "nope";

Ich führe es aus und bekomme:

Warnung: preg_match () [function.preg-match]: Kein Endbegrenzer '^' gefunden in


Sie können die T-Regx-Bibliothek verwenden , für die keine Trennzeichen erforderlich sind.
Danon

Antworten:


157

PHP-Regex-Zeichenfolgen benötigen Trennzeichen. Versuchen:

$numpattern="/^([0-9]+)$/";

Beachten Sie auch, dass Sie einen Kleinbuchstaben o und keine Null haben. Wenn Sie nur validieren, benötigen Sie die Erfassungsgruppe nicht und können den regulären Ausdruck auf vereinfachen /^\d+$/.

Beispiel: http://ideone.com/Ec3zh

Siehe auch: PHP - Trennzeichen


2
Für diejenigen, die verknüpfte Materialien nicht lesen, verwenden [und ]Trennzeichen verwenden, da sonst Konflikte mit dem Muster selbst auftreten.
Greenoldman

23

Ihr Regex-Muster muss in Trennzeichen stehen:

$numpattern="/^([0-9]+)$/";

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.