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

Fingerman
quelle
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

Kobi
quelle
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]+)$/";
David Powers
quelle