Python - 高级字符串转义

时间:2014-11-13 09:41:36

标签: python

我在python中有一个字符串。我使用escape()来删除换行符,现在我的字符串看起来像这样:

<p>Wie hoch ist der Anteil «oraler MS-Medikamente»
bei Neuverschreibungen in Ihrer Sprechstunde? </p>

但它应该看起来像这样

Wie hoch ist der Anteil oraler MS-Medikamente bei Neuverschreibungen in Ihrer Sprechstunde?

我该怎么办?

3 个答案:

答案 0 :(得分:1)

  1. 尝试解码(反向转义)。
    HTML编码器/解码器 - 将字符转换为相应的HTML实体 - Web 2.0生成器http://goo.gl/2tcml1

  2. 您也可以使用此提示

  3. 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 = '&lt;p&gt;Wie hoch ist der Anteil &amp;laquo;oraler MS-Medikamente&amp;raquo;bei Neuverschreibungen in Ihrer Sprechstunde?&amp;nbsp;&lt;/p&gt;'

def unescape(s):
    characters = ["&lt;p&gt;", "&lt;", "&gt;", "&amp;", "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?