首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在与Python中的regex匹配的同时处理diacritics

如何在与Python中的regex匹配的同时处理diacritics
EN

Stack Overflow用户
提问于 2014-11-24 12:56:55
回答 1查看 63关注 0票数 1

试图将正则表达式与unicode一起使用,html转义用于diacritics:

代码语言:javascript
复制
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
htmlstring=u'''/">čćđš</a>.../">España</a>'''

print re.findall( r'/">(.*?)</a', htmlstring, re.U )

生产:

代码语言:javascript
复制
[u'\u010d\u0107\u0111\u0161', u'Espa\xf1a']

有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-24 13:31:45

这似乎是一个编码问题。您的代码正在正常工作。你期待的是什么不同的东西吗?以u为前缀的字符串是unicode文本。以\u开头的字符是unicode字符,后面是四个十六进制数字,而以\x开头的字符是unicode字符,后面只有两个十六进制数字。如果您打印出您的结果(而不是查看他们的__repr__方法),您将看到您已经收到了您正在寻找的结果:

代码语言:javascript
复制
results = [u'\u010d\u0107\u0111\u0161', u'Espa\xf1a']
for result in results:
    print result

čćđš
España

在代码(即列表中)中,您可以看到这些unicode文本的表示:

代码语言:javascript
复制
for result in results:
    print result.__repr__()

u'\u010d\u0107\u0111\u0161'        # what shows up in your list
u'Espa\xf1a'

顺便说一句,您似乎正在尝试用regexes解析html。您应该尝试使用BeautifulSoup或类似的方法。这会让你在路上省去一大阵头痛。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27105392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档