假设我想匹配一个小写字母后跟一个大写字母,我可以做类似的事情
re.compile(r"[a-z][A-Z]")
现在我想对 unicode 字符串做同样的事情,即匹配“aÅ”或“yÜ”之类的东西。
试过了
re.compile(r"[a-z][A-Z]", re.UNICODE)
但这不起作用。
有什么线索吗?
假设我想匹配一个小写字母后跟一个大写字母,我可以做类似的事情
re.compile(r"[a-z][A-Z]")
现在我想对 unicode 字符串做同样的事情,即匹配“aÅ”或“yÜ”之类的东西。
试过了
re.compile(r"[a-z][A-Z]", re.UNICODE)
但这不起作用。
有什么线索吗?
这对于 Python 正则表达式很难做到,因为当前的实现不支持 Unicode 属性快捷方式,例如\p{Lu}
和\p{Ll}
。
[A-Za-z]
当然只会匹配 ASCII 字母,无论是否设置了 Unicode 选项。
因此,在re
更新模块(或安装当前正在开发的regex
包)之前,您要么需要以编程方式进行(遍历字符串并在字符上执行char.islower()
/ char.isupper()
),要么手动指定所有 unicode 代码点,这可能不是值得努力...