我在python中有一个字符串。我使用escape()来删除换行符,现在我的字符串看起来像这样:
<p>Wie hoch ist der Anteil &laquo;oraler MS-Medikamente&raquo;
bei Neuverschreibungen in Ihrer Sprechstunde?&nbsp;</p>
但它应该看起来像这样
Wie hoch ist der Anteil oraler MS-Medikamente bei Neuverschreibungen in Ihrer Sprechstunde?
我该怎么办?
答案 0 :(得分:1)
尝试解码(反向转义)。
HTML编码器/解码器 - 将字符转换为相应的HTML实体 - Web 2.0生成器http://goo.gl/2tcml1
您也可以使用此提示
import BeautifulSoup
soup= BeautifulSoup(raw_html)
cleantext = soup.text
答案 1 :(得分:0)
您可以 unescape 字符串,以便重新获取HTML标记:
import HTMLParser
parser = HTMLParser.HTMLParser()
str = parser.unescape(str)
然后使用一些正则表达式删除HTML标记:
p = re.compile(r'<.*?>')
return p.sub('', str)
我并不真的建议使用正则表达式来解析HTML,您可以使用BeautifulSoup
代替。
答案 2 :(得分:0)
列出字符列表中的所有不必要的符号,然后替换它们:
string = '<p>Wie hoch ist der Anteil &laquo;oraler MS-Medikamente&raquo;bei Neuverschreibungen in Ihrer Sprechstunde?&nbsp;</p>'
def unescape(s):
characters = ["<p>", "<", ">", "&", "laquo;", "raquo;", "nbsp;", "/p"]
for character in characters:
s = s.replace(character, "")
return s
print(unescape(string))
结果如下:
Wie hoch ist der Anteil oraler MS-Medikamentebei Neuverschreibungen in Ihrer Sprechstunde? p>