我尝试匹配这个表达式:
*^X-Spam-Flag:是
我使用这个代码:
if(preg_match('''* ^X-Spam-Flag: YES''', $value))
但我有一个错误:
PHP警告:preg_match():编译失败:没有可重复的内容偏移0
regex和*和^有问题,但我能纠正吗?
您缺少分隔符。
更改为:
preg_match('#''* ^X-Spam-Flag: YES''#', $value)
或者你可能需要:
preg_match('#'* '^X-Spam-Flag: YES#', $value)
当您接近解决方案时,必须转义^
和*
,因为它们在正则表达式模式中具有特殊含义:
if(preg_match(''''* '^X-Spam-Flag: YES''', $value))
如果你的转义单引号看起来很奇怪,最好用/
或~
代替。。。然而,这些可以用作分隔符。
有关分隔符的更多信息,请点击此处:http://www.php.net/manual/en/regexp.reference.delimiters.php
要安全地转义Regex特殊字符,只需使用"preg_quote()",它会在这些字符前面添加反斜杠。
if(preg_match('''* ^X-Spam-Flag: YES''', preg_quote($value)))