有没有一种方法可以避免Python 3中的多个html.unescape调用



所以我一直在尝试去掉特殊的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"

最新更新