如何用python替换字符串中的html元素?
我有一个字符串,如下所示,其中包含中文:如何用python替换字符串中的html元素?,python,html,regex,python-3.x,Python,Html,Regex,Python 3.x,我有一个字符串,如下所示,其中包含中文: '<span class=H>宜家</span><span class=H>同款</span> 世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅' 我可以知道如何通过python和re实现这一点吗?非常感谢 这是一个用HTML解析器解决的小问题: >>> from bs4 import BeautifulSoup >>> >>> data = '<sp
'<span class=H>宜家</span><span class=H>同款</span> 世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅'
我可以知道如何通过python和re实现这一点吗?非常感谢 这是一个用HTML解析器解决的小问题:
>>> from bs4 import BeautifulSoup
>>>
>>> data = '<span class=H>宜家</span><span class=H>同款</span> 世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅'
>>> soup = BeautifulSoup(data)
>>> soup.text
'宜家同款 世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅'
>>来自bs4导入组
>>>
>>>数据收集宜家同款 世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅'
>>>汤=美汤(数据)
>>>soup.text
'宜家同款 世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅'
对于只使用正则表达式的简单解决方案,您可以搜索以下模式并用空字符串替换所有出现的模式:
\s*<[^>]+>\s*
\s*]+>\s*
例如:
p = re.compile( '\s*<[^>]+>\s*')
p.sub( '', '<span class=H>宜家</span><span class=H>同款</span> 世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅')
p=re.compile('\s*]+>\s*'))
p、 子('','宜家同款 世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅')
免责声明:这绝不会处理合法HTML的所有可能变化,但是,只要所有输入数据与示例中的数据一样简单,它就会工作。您可以根据需要更改模式,以处理稍微复杂的输入。但是,如果您的目的是将任何格式良好的HTML文档作为inp处理然后,你应该考虑一个实际的HTML解析器,而不是使用正则表达式.< /p>它看起来是一个好的解决方案。我只是想使用正则表达式,而我没有得到正确的解决方案。非常感谢,我会试试这个方法。通过包含<代码> <代码> >代码> /\s*] +> s*/g < /代码>将消除结果中的所有空格。@ PedroPinheiro Pood点。我没有NoTI。ce确认OP中所需的输出确实删除了空格。我将相应地更新我的答案。但是,Python中不需要书尾斜杠。此外,
re.sub
默认使用全局选项,因此也不需要g
。
p = re.compile( '\s*<[^>]+>\s*')
p.sub( '', '<span class=H>宜家</span><span class=H>同款</span> 世纪宝贝儿童餐椅婴儿餐椅宝宝餐椅婴儿吃饭椅')