Wyrażenia regularne PHP: nie znaleziono separatora końcowego „^” w


103

Mam problemy z wyrażeniami regularnymi.

To jest mój kod

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

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

Uruchamiam go i otrzymuję:

Ostrzeżenie: preg_match () [function.preg-match]: nie znaleziono separatora końcowego „^” w


Możesz użyć biblioteki T-Regx , która nie potrzebuje ograniczników.
Danon,

Odpowiedzi:


158

Łańcuchy wyrażeń regularnych PHP wymagają separatorów. Próbować:

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

Zauważ też, że masz małą literę o, a nie zero. Ponadto, jeśli tylko weryfikujesz, nie potrzebujesz grupy przechwytywania i możesz uprościć wyrażenie regularne do /^\d+$/.

Przykład: http://ideone.com/Ec3zh

Zobacz też: PHP - ograniczniki


2
Dla tych, którzy nie czytają powiązanych materiałów, użyj [i ]ograniczników, w przeciwnym razie napotkasz konflikty z samym wzorem.
greenoldman

24

Twój wzorzec wyrażenia regularnego musi zawierać separatory:

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.