2012-03-26 105 views
7

我嘗試使用字符串作爲一個正則表達式模式,但我有以下錯誤PHP:字符串正則表達式

PHP Warning: preg_match(): Unknown modifier '>' in /Applications/MAMP/htdocs/cruncher/Plugins/wordpress/WPDetect.php on line 22 
PHP Warning: preg_match(): Unknown modifier '/' in /Applications/MAMP/htdocs/cruncher/Plugins/wordpress/WPDetect.php on line 22 

代碼

$str = "<meta name=\"generator\" content=\"WordPress.com\" />" 
preg_match("/".$str."/", $content->content) 

我還試圖用preg_quote功能,但我已經類似的問題。

使其工作的正確方法是什麼?

蘇丹

回答

11

使用preg_quote功能和模式附帶|...|

preg_match("|" . preg_quote($str, "|") . "|", $content->content) 
+0

謝謝@piotrekkr之前,從您的字符串轉義它工作 – sultan 2012-03-26 13:42:20

+0

肯定它無法接受約8分鐘的答案) – sultan 2012-03-26 13:51:19

+0

好吧對不起沒有tknow有一個時間限制:) – piotrekkr 2012-03-28 06:53:03

0

你必須逃脫你限制器

$str = "<meta name=\"generator\" content=\"WordPress.com\" \/>" 
0

正則表達式包含一套特殊字符像\ - *。 ? $^+()[]和更多,你必須使用它(你被燒焦之前添加\ esacpe)

1

這爲我工作

$pattern = "/" . preg_quote($source, "/") . "/";