所以我一直在尝试去掉特殊的HTML字符,并为此使用了HTML.unescape。问题是,如果一行有两个特殊字符,函数就不能像我想要的那样真正工作
我尝试了多个函数调用,比如html.unescape(html.unescape(text((,但肯定是个糟糕的主意
str='Anchor says Buckingham Palace pressure killed ABC's story on Epstein'
print(html.unescape(str))
因此,输出不是替换所有字符,而是:
Anchor says Buckingham Palace pressure killed ABC's story on Epstein
有办法解决这种问题吗?
当我们的数据被多级转义时,注释说的通常有问题,这是正确的。然而,如果我们想接受这个问题的现状,并且仍然需要解决它,那么如果我们收到一个可能被多次转义的字符串,并且我们不知道它被转义的频率,我们可以取消它的注释,即直到它不再变化。
我们可以使用while
-循环如下所示:
import html
def ultimately_unescape(s: str) -> str:
unescaped = ""
while unescaped != s:
s = html.unescape(s)
unescaped = html.unescape(s)
return s
这给了我们:
>>> ultimately_unescape("Anchor says Buckingham Palace pressure killed ABC's story on Epstein"))
"Anchor says Buckingham Palace pressure killed ABC's story on Epstein"