我在Python中有一个String,里面有一些HTML。基本上它看起来像这样。
>>> print someString # I get someString from the backend
"<img style='height:50px;' src='somepath'/>"
我尝试在PDF中显示此HTML。因为我的PDF生成器无法处理styles-attribute(不,我不能再使用另一个),我必须从字符串中删除它。基本上,它应该是这样的:
>>> print someString # I get someString from the backend
"<img style='height:50px;' src='somepath'/>"
>>> parsedString = someFunction(someString)
>>> print parsedString
"<img src='somepath'/>"
我想最好的方法是使用RegEx,但我并不是非常热衷于此。有人可以帮助我吗?
答案 0 :(得分:1)
我不会使用RegEx,因为
好吧,那我该怎么办呢。我会使用可靠的BeautifulSoup
!使用以下命令使用pip进行安装:
pip install beautifulsoup4
然后您可以执行以下操作以删除样式:
from bs4 import BeautifulSoup as Soup
del Soup(someString).find('img')['style']
首先解析您的字符串,然后找到img
标记,然后删除其style
属性。
它也应该使用任意字符串,但我不能保证。也许你会想出一个边缘案例。
请记住,使用RegEx解析HTML字符串不是最好的想法。互联网和Stackoverflow充满了答案,为什么这是不可能的。
编辑:只是为了踢,你可能想看看这个answer。你知道,即使Jon Skeet也不能这样做,事情也很严重。
答案 1 :(得分:-1)
使用RegEx处理HTML是一个非常糟糕的主意,但如果你真的想使用它,试试这个:
/style=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']?/ig