preg_match with php编译失败


preg_match with php Compilation failed

我尝试匹配这个表达式:

*^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)))