可能重复:
正则表达式永远不能匹配?
我如何编写一个在php中始终返回false的正则表达式.
我想要这个bcos.我想显示一个错误消息带有一个表单规则...所以我喜欢这个..
if($values['result_msg'] == 'ERROR')
{
$form->registerRule('just_check','regex','/$^/');
$form->addRule('abc', 'Please enter valid Model Number.','just_check');
}
Run Code Online (Sandbox Code Playgroud)
我不知道你为什么要这样做,但是这样做:
(?!x)x
Run Code Online (Sandbox Code Playgroud)
第一位(?!...... )是一个负向前瞻,表示"确保这个位置与这个前瞻的内容不匹配",内容是x,然后最后x说"匹配x" - 因为这两个是对立的,表达式将从不匹配.
您可能还想添加开始/结束标记,即
^(?!x)x$
Run Code Online (Sandbox Code Playgroud)
你可以x用几乎任何东西交换它们,只要两个位都是等价的.
还有很多其他方法可以做到这一点,基本上你只是将两个相互排斥的条件彼此相邻以匹配相同的位置,并且正则表达式将无法匹配 - 请参阅Mark的答案以获取更多示例.
有很多方法可以做到:
/(?=a)b/这无法匹配,因为它搜索的是a和b两个字符.
/\Zx\A/这无法匹配,因为字符串的结尾不能在字符串的开头之前到来.
/x\by/这无法匹配,因为字符边界不能在字符x和之间y.