使用正则表达式和Python替换HTML标签
我有一个Python脚本,它会查看一个格式如下的HTML文件:
<DOC>
<HTML>
...
</HTML>
</DOC>
<DOC>
<HTML>
...
</HTML>
</DOC>
我该如何用Python中的正则表达式去掉所有的HTML标签(把标签替换成''),但保留开头和结尾的DOC标签呢?另外,如果我想保留标签的alt文本,正则表达式应该怎么写呢?
3 个回答
2
可以看看 lxml,这是一个非常好用的Python库,用来处理XML文件。你可以使用drop_tag这个功能来实现你想要的效果。
from lxml import html h = html.fragment_fromstring('<doc>Hello <b>World!</b></doc>') h.find('*').drop_tag() print(html.tostring(h, encoding=unicode)) <doc>Hello World!</doc>
4
为了实现你想要的效果,我建议使用BeautifulSoup,而不是正则表达式。
1
用这个正则表达式来搜索和替换:搜索内容是:<.*?>,替换成:"