在Python中使用正则表达式匹配区分大小写的unicode字符串

时间:2011-09-13 06:50:42

标签: python regex unicode case-insensitive character-properties

假设我想匹配小写字母后跟大写字母,我可以做类似

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

现在我想对unicode字符串做同样的事情,即匹配'aÅ'或'yÜ'之类的东西。

尝试

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

但这不起作用。

任何线索?

1 个答案:

答案 0 :(得分:7)

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

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

因此,在更新re模块之前(或者安装当前正在开发的regex package),您需要以编程方式执行此操作(遍历字符串并执行char.islower() / {字符上的{1}},或手动指定所有unicode代码点,这可能是不值得的...