2012-01-22 55 views
1

我有很多的文字标记的是这样的:地带HTML标签和内容指定属性的

<span class="section">[<a href="blablabla">Section</a>]</span> 

我需要删除具有类=“节”包括span标签和里面的文字的一切。我正在寻找一个正则表达式或替代方法来自动执行此任务。

任何线索?

编辑:我达到任何可以帮助我解决这个问题,我认为正则表达式是更简单的方法。我在PHP编码。

谢谢。

+0

相反,傻不答案,这是可能的,只是用正则表达式不容易。更重要的是[tag:querypath]它允许:'print htmlqp($ html) - > remove(“。section”) - > top() - > html();' – mario

回答

2

如果您的部分级标记不包含相同类型的元素(例如,您没有跨度包含跨度),则可以使用正则表达式轻松完成此操作。

以下是最简单的:

$stripped = preg_replace('@<span class="section">.*?</span>@', '', $input); 

这一点,如果你需要它,允许任何标记,任何其他属性,以及任何其他类:

$stripped = preg_replace('@<(\w+)[^>]*class="[^"]*section[^"]*"[^>]*>.*?</\1>@', '', $input); 
+0

这正是我所需要的。谢谢! – Peibol