正则表达式和Unicode

我有一个正则表达式,用来提取姓氏:
姓氏=r'(?u).+(\w+)'
但是,当我将它应用于此Unicode字符串时,我只得到前3
姓氏字母:
名称='Anton\xc3\xadn Dvo\xc5\x99\xc3\xa1k'
SURNAME_RE=重新编译(SURNAME)
M=surname_re.earch(姓名)
M.Groups()
('DVO\xc5',)
我想可能是编码有问题,但我不理解Unicode
好到足以知道如何正确地消化
那个姓氏。
--
杰弗里·巴里什

# 回答1


杰弗里·巴里什写道:
这是一个字节字符串。您可以修改文本
名称=u'Anton\xedn Dvo\u0159\xe1k'
或使用适当的编码进行解码
名称='Anton\xc3\xadn Dvo\xc5\x99\xc3\xa1k'
Name=name.decode("utf-8")
(U'Dvo\u0159\xe1k',)
DVOák
彼得

标签: python

添加新评论