Tenho tido alguns problemas com expressões regulares.
Este é o meu código
$pattern = "^([0-9]+)$";
if (preg_match($pattern, $input))
echo "yes";
else
echo "nope";
Eu executo e obtenho:
Aviso: preg_match () [function.preg-match]: Nenhum delimitador final '^' encontrado em
php
regex
preg-match
pcre
fingerman
fonte
fonte
Respostas:
Strings PHP regex precisam de delimitadores. Experimentar:
Além disso, observe que você tem um o minúsculo, não um zero. Além disso, se você está apenas validando, não precisa do grupo de captura e pode simplificar o regex para
/^\d+$/
.Exemplo: http://ideone.com/Ec3zh
Veja também: PHP - Delimitadores
fonte
[
e]
, caso contrário, você entrará em conflito com o próprio padrão.Seu padrão de regex precisa estar em delimitadores:
fonte
Você pode usar a biblioteca T-Regx , que não precisa de delimitadores
fonte