Регулярные выражения PHP: конечный разделитель '^' в


103

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

Это мой код

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

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

Запускаю и получаю:

Предупреждение: preg_match () [function.preg-match]: конечный разделитель '^' не найден в


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

Ответы:


158

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

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

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

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

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


2
Для тех, кто не читает связанные материалы, используйте [и ]разделители, иначе вы столкнетесь с конфликтом с самим шаблоном.
greenoldman 01


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.