我尝试匹配这个表达式:我用这个代码是的preg_match用PHP编译失败
:
if(preg_match('\'* ^X-Spam-Flag: YES\'', $value))
但我
*^X-Spam-Flag标有这个错误:
PHP警告:preg_matc h():编译失败:没有重复的地址 偏移量0
问题与正则表达式和*和^,但我可以纠正?
我尝试匹配这个表达式:我用这个代码是的preg_match用PHP编译失败
:
if(preg_match('\'* ^X-Spam-Flag: YES\'', $value))
但我
*^X-Spam-Flag标有这个错误:
PHP警告:preg_matc h():编译失败:没有重复的地址 偏移量0
问题与正则表达式和*和^,但我可以纠正?
你是在解附近,你要逃跑^
和*
因为这些有一个正则表达式特殊的意义:
if(preg_match('\'\* \^X-Spam-Flag: YES\'', $value))
如果您的转义单引号看起来很奇怪nd可能会被/
或~
更好替代......但是这些可以用作分隔符。
更多信息关于这里的分隔符:http://www.php.net/manual/en/regexp.reference.delimiters.php
为了安全逃离正则表达式的特殊字符,你可以简单地使用“preg_quote()”,其中增加了反斜杠字符前面。
if(preg_match('\'* ^X-Spam-Flag: YES\'', preg_quote($value)))
您需要分隔符。试试:'if(preg_match(“/ \ * \^X-Spam-Flag:YES/i”,$ value))' –
@RobW不工作 – mpgn
对我来说工作很好.. http://phpfiddle.org/main/code/r8y-p52 –