正则表达式,总是返回false

时间:2010-08-31 13:08:54

标签: php regex

  

可能重复:
  What regular expression can never match?

我如何编写一个在php中始终返回false的正则表达式。

我想要这个bcos。我希望显示一个错误消息带有一个表单规则...所以我喜欢这个...

if($values['result_msg'] == 'ERROR')
                    {
                    $form->registerRule('just_check','regex','/$^/');                       
                    $form->addRule('abc', 'Please enter valid Model Number.','just_check');
                    }

3 个答案:

答案 0 :(得分:6)

我不知道为什么你想要这样做,但是这样做:

(?!x)x

第一位(?! .. )是一个负向前瞻,表示“确保此位置与此前瞻的内容不匹配”,其内容为x,并且然后最后的x说“匹配x” - 因为这两个是对立的,表达式永远不会匹配。

您可能还想添加开始/结束标记,即

^(?!x)x$

只要两个位都相同,您就可以将x与几乎任何东西交换。

还有很多其他方法可以做到这一点,基本上你只是将两个相互排斥的条件放在一起以匹配同一个地方,并且正则表达式将无法匹配 - 有关更多示例,请参阅Mark's answer。 / p>

答案 1 :(得分:6)

有很多方法可以做到:

  • /(?=a)b/

无法匹配,因为它会搜索同时为a和b的字符。

  • /\Zx\A/

无法匹配,因为字符串的结尾不能在字符串开头之前出现。

  • /x\by/

无法匹配,因为字词xy之间不能包含字边界。

答案 2 :(得分:0)

试试这个:

$.^