6

假设我想匹配一个小写字母后跟一个大写字母,我可以做类似的事情

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

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

试过了

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

但这不起作用。

有什么线索吗?

4

1 回答 1

7

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

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

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

于 2011-09-13T06:59:06.143 回答