在Python中解析格式不正确的字符串
可能是重复的问题:
在Python字符串中解码HTML实体?
我在Python中有一个格式不正确的字符串:
Muhammad Ali's fight with Larry Holmes
其中 '
是一个撇号。
首先,这个 '
是什么表示法?其次,我该如何在Python中解析这个字符串,把 '
替换成 '
呢?
2 个回答
1
&#CHAR-CODE;
是一种在 HTML 中表示特殊字符的写法(可能在其他地方也能用,但我不太确定)。虽然可能有更完整的方法来实现这个功能,但你可以简单地用以下方式替换它:
mystring = "Muhammad Ali's fight with Larry Holmes"
print mystring.replace("'", "'")
结果是:
穆罕默德·阿里与拉里·霍尔姆斯的比赛
5
Python标准库中的HTMLParser
可以解码字符串中的HTML实体。
>>> import HTMLParser
>>> h = HTMLParser.HTMLParser()
>>> s = h.unescape('© 2010')
>>> s
u'\xa9 2010'
>>> print s
© 2010
>>> s = h.unescape('© 2010')
>>> s
u'\xa9 2010'
这里描述了一系列解决方案:http://fredericiana.com/2010/10/08/decoding-html-entities-to-text-in-python/