PHP正则表达式:未找到结束定界符'^'

137

我在正则表达式方面遇到了一些麻烦。

以下是我的代码

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

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

我运行它并得到:

警告:preg_match() [function.preg-match]:在

中未找到结束定界符'^'

你可以使用T-Regx库,它不需要分隔符。 - Danon
2个回答

208

PHP正则表达式需要定界符。尝试:

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

另外,请注意您使用的是小写字母“o”,而不是数字零。此外,如果您只需验证,则无需捕获组,并且可以将正则表达式简化为/^\d+$/

例如:http://ideone.com/Ec3zh

另请参阅:PHP - 分隔符


4
对于那些不阅读链接材料的人,请使用 [] 分隔符,否则您会与模式本身发生冲突。 - greenoldman

26

您的正则表达式模式需要放在限定符中:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接