2014-05-01 29 views
0

我試圖從一個RSS feed以這樣的正則表達式刪除與社會聯繫的一部分:preg_replace函數:正則表達式不起作用

preg_replace("/<p>.*?facebook.*?</p>/", "", $rss_string); 

其中$ rss_string可能是如。

<description>important_content&lt;p&gt;facebook_rubbish_here&lt;/p&gt;</description> 

起初它是無效修飾符'p'。然後我改變/ p到\/p導致它運行,但它沒有找到任何東西......我做錯了什麼?我不是逃避我應該做的事嗎?

謝謝!

+2

您需要在正則表達式中跳過正斜槓或使用不同的分隔符(例如'#')。 –

回答

0

正如我所說,我然後逃脫了/ P但它仍然沒有工作。我剛剛發現解決方法是在preg_replace中,DOT與換行符不匹配,所以我需要使用's'選項。

3

這是因爲你正在使用正則表達式分隔符斜槓,你的正則表達式也包含斜線。要麼轉義斜線或更好地使用替代正則表達式分隔符。

preg_replace('~&lt;p&gt;.*?facebook.*?&lt;/p&gt;~', "", $rss_string);