所以我一直在尝试去掉特殊的超文本标记语言字符,并使用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有没有办法解决这类问题?
发布于 2019-11-07 07:21:30
评论是正确的,他们说,当我们的数据被多个层次深度转义时,通常会出现问题。然而,如果我们想要接受这个问题,并且仍然需要解决它,那么如果我们收到一个可能多次转义的字符串,并且我们不知道它被转义的频率有多高,我们就可以不再转义它,也就是说,直到它不再改变。
我们可以使用while-loop执行此操作,如下所示:
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"https://stackoverflow.com/questions/58739772
复制相似问题