我嘗試匹配這個表達式:我用這個代碼是的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 –