正则表达式删除具有特定类及其内容的锚点?

时间:2011-02-22 10:58:08

标签: php regex preg-replace html-parsing

<a class="rsswidget" href="http:/domain.com/feed/" title="RSS">
<img style="border:0" width="14" height="14" src="http://domain.com/images/rss.png" alt="RSS">
</a>

我需要什么正则表达式来摆脱整个锚点,包括里面的图像? 不幸的是,我是一个正则表达式的菜鸟,所以我需要你的帮助。非常感谢你。

return preg_replace('#<a+class="rsswidget"[^>]*>.*?</a>#is', '', $content);

1 个答案:

答案 0 :(得分:3)

这几乎是正确的。但+仅量化a。您想在该位置使用[^>]+

preg_replace('#<a[^>]+class="rsswidget"[^>]*>.*?</a>#is',

为了避免任何正则表达式为html-whatever-down-downvoting,这将是QueryPath替代方案:

return qp($html)->find("a.rsswidget")->remove()->writeHTML();