Expressões regulares PHP: Nenhum delimitador final '^' encontrado em


102

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


Você pode usar a biblioteca T-Regx , que não precisa de delimitadores.
Danon,

Respostas:


157

Strings PHP regex precisam de delimitadores. Experimentar:

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

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


2
Para quem não lê materiais vinculados, use delimitadores [e ], caso contrário, você entrará em conflito com o próprio padrão.
greenoldman

23

Seu padrão de regex precisa estar em delimitadores:

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.