首页 > 解决方案 > 如何在正则表达式中使用使用多个 unicode 点的字母?

问题描述

标签: pythonregexunicodeinternationalization

解决方案


Python 中的字符类仅匹配单个代码单元/点,即可以匹配\uXXXX\UXXXXXXXX符号的那些。字符类与字符序列不匹配。分组结构就是为了做到这一点。

您有包含多个代码单元的多字节字符,并且它们不能被重写为单个代码点,因此您将始终如您所描述的那样在字符类中获得字符之间的 OR 行为:([சிகு]正则表达式引擎[ச,ிக,ு]将匹配类中定义的四个字符之一,而不是两个字符序列中的任何一个。

要匹配字符序列,例如多字节字符中的代码单元,您必须使用分组构造

சி|கு
(?:சி|கு)
(சி|கு)

推荐阅读