Регулярные выражения 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
24

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

$numpattern="/^([0-9]+)$/";
Дэвид Пауэрс
источник