Python高级字符串转义

2024-09-28 21:11:14 发布

您现在位置: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?

我能做什么?你知道吗


Tags: 字符串inltgtmsampderbei
3条回答

您可以unescape字符串,以便取回HTML标记:

import HTMLParser
parser = HTMLParser.HTMLParser()
str = parser.unescape(str)

然后使用一些正则表达式删除HTML标记:

p = re.compile(r'<.*?>')
return p.sub('', str)

我并不推荐使用regex来解析HTML,您可以使用BeautifulSoup。你知道吗

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

  2. 您也可以使用此提示

import BeautifulSoup

soup= BeautifulSoup(raw_html)
cleantext = soup.text

字符列表中列出所有不必要的符号,然后替换它们:

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?

相关问题 更多 >