preg_replace:正则表达式不起作用

时间:2014-05-01 18:52:50

标签: php regex preg-replace

我正在尝试使用带有RegEx的RSS源删除带有社交链接的部分,如下所示:

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 :(得分:3)

这是因为你正在使用正则表达式分隔符斜杠,你的正则表达式也包含斜杠。要么逃避正斜杠还是更好地使用替代的正则表达式分隔符。

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

答案 1 :(得分:0)

正如我所说,然后我逃脱了/ p但它仍然没有用。我刚刚发现解决方案是在preg_replace中,DOT与换行符不匹配所以我需要使用&#39; s&#39;选项。