2011-09-13 107 views
6

假设我想匹配一个小写字母后跟一个大写字母,我可以做类似匹配区分大小写Unicode字符串在Python

re.compile(r"[a-z][A-Z]") 

现在我想做为Unicode字符串一样的东西即匹配'a'或'yü'等。

试图

re.compile(r"[a-z][A-Z]", re.UNICODE) 

,但不起作用。

任何线索?

回答

6

这很难用Python正则表达式,因为当前的实现不支持Unicode属性快捷方式,如\p{Lu}\p{Ll}

[A-Za-z]当然只会匹配ASCII字母,不管Unicode选项是否设置。

所以直到re模块更新(或安装regex package目前正在开发中),您可能需要以编程方式做到这一点(通过串迭代并做上的字符char.islower()/char.isupper()),或指定所有Unicode码手动点可能是不值得的努力...

+0

这很有用。我只需要处理丹麦信件。因此,添加'æøå'和'ÆØÅ'可能是可以的。 – repoman

相关问题