我刚刚在pypi上注意到了一个新的“ regex ”软件包。(如果我理解正确,它是新软件包的测试版本,有朝一日将取代stdlibre
软件包)。
关于unicode,它似乎还有其他可能性。例如,它支持\X
,用于匹配单个字素(无论是否使用合并)。它还支持unicode属性,块和脚本的匹配,因此您可以\p{M}
用来引用组合标记。在\X
之前提到的是相当于\P{M}\p{M}*
(一个字符不是一个结合标记,接着是零个或多个组合的标记)。
请注意,这\X
或多或少使unicode等效于.
,而不是\w
,因此\w\p{M}*
您需要的是Unicode 。
(目前)它是一个非stdlib程序包,我不知道它是否准备好(并且它不以二进制分发),但是您可能想尝试一下,因为它似乎是最简单/最“正确”的答案。(否则,我认为您明确使用了字符范围,如我对上一个答案的评论所述)。
另请参见此页面以及有关Unicode正则表达式的信息,该信息可能还包含一些对您有用的信息(并且可以用作正则表达式包中实现的某些内容的文档)。