为什么带有空模式的preg_match总是匹配

时间:2014-07-11 13:58:45

标签: php regex

我在数据库上设置了一个要传递给preg_match的正则表达式模式,但它可以为空,从而导致//并将其传递给preg_match,其中任何字符串都匹配。

例如:

 $m = preg_match( '//', 'something' );
 echo $m
 // output: 1

为什么会出现这种行为,以及如何解决?

1 个答案:

答案 0 :(得分:3)

模式//对可匹配的内容没有任何限制,因此一切都匹配。

您可以使用模式/^$/(字符串的开头紧跟字符串的结尾)。

您可以测试您传递的模式,看它是否为//