【发布时间】:2013-12-30 16:26:28
【问题描述】:
我有一些来源试图删除一些标签,我知道不建议使用正则表达式来删除标签,但我认为这将是最简单的方法。
我需要做的是删除所有img 和a 标记以及a 标记的内容only 在p 标记内,但我不确定如何使用正则表达式来做到这一点。
比如遇到的时候:
<p><img src="center.jpg"><a href="?center">center</a>TEXT<img src="right.jpg"><a href="?rightspan">right</a> MORE TEXT<img src="another.jpg"></p>
输出应如下所示,其中所有a 标记和内容以及img 标记均已删除。
<p>TEXT MORE TEXT</p>
问题就像我说我不确定如何执行此操作,并且我的正则表达式删除了源中a 和img 标记的所有,而不仅仅是那些在p 标签内。
re.sub(r'<(img|a).*?>|</a>', '', text)
【问题讨论】:
-
“但认为这将是最简单的路线” - 好吧,正如您所见,这并不容易。那为什么不尝试其他路线呢? :)
-
这里是乘坐Remove all <a> tags的更便捷路线。
-
我会第一个说this,并推荐the standard library(或美汤)的精彩工具。
-
感谢所有链接和参考。我现在知道不要使用正则表达式,因为使用解析器要容易得多。