我下面有一个字符串,里面有中文:
'<span class=H>宜家</span><span class=H>同款</span> 世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅'现在,我想像预期的那样删除这个字符串的所有html元素:
'宜家同款世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅'我可以知道如何用python和re来完成这个任务吗?非常感谢!
发布于 2015-09-09 17:23:18
这是一些需要使用BeautifulSoup解析器解决的琐碎问题:
>>> from bs4 import BeautifulSoup
>>>
>>> data = '<span class=H>宜家</span><span class=H>同款</span> 世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅'
>>> soup = BeautifulSoup(data)
>>> soup.text
'宜家同款 世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅'发布于 2015-09-09 17:41:34
对于只使用regex的简单解决方案,可以搜索以下模式并用空字符串替换所有出现的模式:
\s*<[^>]+>\s*例如:
p = re.compile( '\s*<[^>]+>\s*')
p.sub( '', '<span class=H>宜家</span><span class=H>同款</span> 世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅')免责声明:这绝不会处理合法HTML的每一个可能的变化,但是,只要所有的输入数据都和示例中的数据一样简单,它就会工作。您可以根据需要对模式进行更改,以处理稍微复杂的输入。但是,如果您的目的是将任何格式良好的HTML文档作为输入处理,那么您应该考虑实际的HTML解析器,而不是使用regex。
https://stackoverflow.com/questions/32485658
复制相似问题