Expresiones regulares de PHP: no se encuentra el delimitador final '^' en


103

He tenido algunos problemas con las expresiones regulares.

Este es mi codigo

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

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

Lo ejecuto y obtengo:

Advertencia: preg_match () [function.preg-match]: No se encontró el delimitador final '^' en


Puede usar la biblioteca T-Regx , que no necesita delimitadores.
Danon

Respuestas:


158

Las cadenas de expresiones regulares de PHP necesitan delimitadores. Tratar:

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

Además, tenga en cuenta que tiene una o minúscula, no un cero. Además, si solo está validando, no necesita el grupo de captura y puede simplificar la expresión regular a /^\d+$/.

Ejemplo: http://ideone.com/Ec3zh

Ver también: PHP - Delimitadores


2
Para aquellos que no leen los materiales vinculados, use [y ]delimitadores, de lo contrario se encontrará con conflictos con el patrón en sí.
greenoldman

24

Su patrón de expresiones regulares debe estar en delimitadores:

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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.