2024-10-04 05:32:38 发布
网友
尝试将正则表达式与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__方法),您将看到您收到了您似乎要查找的结果:
u
\u
\x
__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'
顺便说一句,似乎您正试图用regex解析html。你应该试试^{}或者类似的东西。这会帮你省去路上的大麻烦。你知道吗
这似乎是一个编码问题。您的代码正常工作。你在期待什么不同的东西吗?前缀为
u
的字符串是unicode文本。以\u
开头的字符是unicode字符,后跟四个十六进制数字,而以\x
开头的字符是unicode字符,后跟两个十六进制数字。如果您打印出您的结果(而不是查看他们的__repr__
方法),您将看到您收到了您似乎要查找的结果:在代码中(即在列表中),可以看到这些unicode文本的表示形式:
顺便说一句,似乎您正试图用regex解析html。你应该试试^{} 或者类似的东西。这会帮你省去路上的大麻烦。你知道吗
相关问题 更多 >
编程相关推荐