尝试将正则表达式与Unicode HTML转义符用于变音符号:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
htmlstring=u'''/">čćđš</a>.../">España</a>'''
print re.findall( r'/">(.*?)</a', htmlstring, re.U )
产生:
[u'\u010d\u0107\u0111\u0161', u'Espa\xf1a']
有什么帮助吗?
这似乎是一个编码问题。您的代码可以正常工作。您是否期望有所不同?前缀u
为unicode文字的字符串。开头的字符\u
是unicode字符,后跟四个十六进制数字,而开头的字符\x
是unicode字符,后跟只有两个十六进制数字。如果打印出结果(而不是查看其__repr__
方法),则会看到收到的结果似乎是您正在寻找的:
results = [u'\u010d\u0107\u0111\u0161', u'Espa\xf1a']
for result in results:
print result
čćđš
España
在您的代码中(即在列表中),您将看到以下unicode文字的表示形式:
for result in results:
print result.__repr__()
u'\u010d\u0107\u0111\u0161' # what shows up in your list
u'Espa\xf1a'
顺便说一句,看来您正在尝试使用正则表达式解析html。您应该尝试BeautifulSoup
或类似的方法。这将使您免于日后的头疼。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句