思路
- 使用正则表达式来匹配HTML标签。正则表达式
<.*?>
可以匹配从<
开始到>
结束的任何内容,也就是HTML标签。
- 使用
re
模块中的sub
或subn
方法将匹配到的HTML标签替换为空字符串,从而达到去除标签,保留标签内文本的目的。
代码实现
import re
text = '<p>Some text here <b>emphasized</b> more text</p>'
# 使用sub方法
result_sub = re.sub('<.*?>', '', text)
print(result_sub)
# 使用subn方法
result_subn = re.subn('<.*?>', '', text)
print(result_subn[0])
选择sub或者subn的原因
sub
方法:sub
方法只返回替换后的字符串。如果我们只关心最终处理后的纯文本内容,sub
方法足够满足需求,它简洁明了,直接返回处理后的结果。
subn
方法:subn
方法返回一个元组,第一个元素是替换后的字符串,第二个元素是替换的次数。如果在某些情况下,我们不仅需要处理后的字符串,还想知道替换操作执行了多少次,就可以选择subn
方法。但对于本题需求,仅获取纯文本内容,sub
和subn
在功能上都能实现,只是sub
更为直接简单。