Регулярные выражения PHP: не найден конечный разделитель '^' в - PullRequest
78 голосов
/ 08 января 2011

У меня возникли проблемы с регулярными выражениями.

Это мой код

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

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

Я запускаю его и получаю:

Предупреждение: preg_match () [function.preg-match]: в

не найден конечный разделитель '^'

Ответы [ 3 ]

125 голосов
/ 08 января 2011

Строки PHP в регулярных выражениях нуждаются в разделителях. Попробуйте:

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

Также обратите внимание, что у вас строчный o, а не ноль. Кроме того, если вы просто проверяете, вам не нужна группа захвата, и вы можете упростить регулярное выражение до /^\d+$/.

Пример: http://ideone.com/Ec3zh

См. Также: PHP - Разделители

20 голосов
/ 08 января 2011

Ваш шаблон регулярного выражения должен быть в разделителях:

$numpattern="/^([0-9]+)$/";
0 голосов
/ 09 октября 2018

Вы можете использовать библиотеку T-Regx , для которой не нужны разделители

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