首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用python替换字符串中的html元素?

如何用python替换字符串中的html元素?
EN

Stack Overflow用户
提问于 2015-09-09 17:15:39
回答 2查看 1.1K关注 0票数 2

我下面有一个字符串,里面有中文:

代码语言:javascript
运行
复制
'<span class=H>宜家</span><span class=H>同款</span> 世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅'

现在,我想像预期的那样删除这个字符串的所有html元素:

代码语言:javascript
运行
复制
'宜家同款世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅'

我可以知道如何用python和re来完成这个任务吗?非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-09 17:23:18

这是一些需要使用BeautifulSoup解析器解决的琐碎问题:

代码语言:javascript
运行
复制
>>> from bs4 import BeautifulSoup
>>>
>>> data = '<span class=H>宜家</span><span class=H>同款</span> 世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅'
>>> soup = BeautifulSoup(data)
>>> soup.text
'宜家同款 世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅'
票数 5
EN

Stack Overflow用户

发布于 2015-09-09 17:41:34

对于只使用regex的简单解决方案,可以搜索以下模式并用空字符串替换所有出现的模式:

代码语言:javascript
运行
复制
\s*<[^>]+>\s*

例如:

代码语言:javascript
运行
复制
p = re.compile( '\s*<[^>]+>\s*')
p.sub( '', '<span class=H>宜家</span><span class=H>同款</span> 世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅')

免责声明:这绝不会处理合法HTML的每一个可能的变化,但是,只要所有的输入数据都和示例中的数据一样简单,它就会工作。您可以根据需要对模式进行更改,以处理稍微复杂的输入。但是,如果您的目的是将任何格式良好的HTML文档作为输入处理,那么您应该考虑实际的HTML解析器,而不是使用regex。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32485658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档