2014-05-01 26 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);