Регулярні вирази PHP: У кінці не знайдено закінчувального роздільника '^'


103

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

Це мій код

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

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

Я запускаю його і отримую:

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


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

Відповіді:


158

Рядки регулярних виразів PHP потребують роздільників. Спробуйте:

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

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

Приклад: http://ideone.com/Ec3zh

Дивіться також: PHP - Розділювачі


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


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.