lla*_*ato 3 python regex python-3.x
我正在尝试删除 HTML 标记(Python 3),但也在尝试删除它们之间的文本。我下面的代码片段似乎没有给我我正在寻找的结果,我在 SO 上发现的所有其他问题似乎只考虑删除 HTML 标签,但保留 HTML 标签内的文本,这不是什么我正在努力做。
当前代码
import re
...
price="12.00 <b>17.50</b>"
price=re.sub('<[^>]*>', '', price)
Run Code Online (Sandbox Code Playgroud)
细绳
12.00 <b>17.50</b>
Run Code Online (Sandbox Code Playgroud)
预期结果
12.00
Run Code Online (Sandbox Code Playgroud)
当前结果
12.00 17.50
Run Code Online (Sandbox Code Playgroud)
您也可以使用 HTML 解析器来完成,例如BeautifulSoup. 这个想法是找到所有的标签并分解它们,然后得到剩下的:
In [8]: from bs4 import BeautifulSoup
In [9]: price = "12.00 <b>17.50</b>"
In [10]: soup = BeautifulSoup(price, "html.parser")
In [11]: for elm in soup.find_all():
...: elm.decompose()
...:
In [12]: print(soup)
12.00
Run Code Online (Sandbox Code Playgroud)
而且,这是一个著名的主题,解释了为什么不应该使用正则表达式处理 HTML:
| 归档时间: |
|
| 查看次数: |
1376 次 |
| 最近记录: |