web-dev-qa-db-fra.com

PHP expressions régulières: aucun délimiteur de fin '^' trouvé dans

J'ai eu quelques problèmes avec les expressions régulières.

C'est mon code

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

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

Je le lance et reçois:

Attention: preg_match () [function.preg-match]: Aucun séparateur final '^' trouvé dans

81
fingerman

Les chaînes de regex PHP ont besoin de délimiteurs. Essayer:

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

Notez également que vous avez un minuscule o, pas un zéro. De plus, si vous ne faites que valider, vous n’avez pas besoin du groupe de capture et pouvez simplifier la regex en /^\d+$/.

Exemple: http://ideone.com/Ec3zh

Voir aussi: PHP - Délimiteurs

131
Kobi

Votre modèle de regex doit être dans les délimiteurs:

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

Vous pouvez utiliser bibliothèque T-Regx , cela n'a pas besoin de délimiteurs

pattern('^([0-9]+)$')->match($input);
0
Danon