按Unicode类别拆分字符串

4
我有一个包含许多不同字符的字符串,我想能够通过unicode中[P0]类别中的所有字符来分割该字符串。如何轻松地实现这一目标呢?(即我想避免枚举此列表中的所有字符,然后创建一个巨大的字符数组,再通过它进行分割)。我还想象这些字符存储的常见属性会使这更容易。那么,如何通过所有unicode标点符号字符来分割一个字符串呢?
1个回答

4

Po 类别被 .NET 正则表达式引擎支持,因此您可以直接执行以下操作:

Regex.Split("this,is.a!test", @"\p{Po}") // [ "this", "is", "a", "test" ]

这不只是其他标点符号吗? - soandos
但是 Ps、Pi、Pf、Pe 等呢? - soandos
1
@soandos 你可以使用\p{P}。在我的答案中查看链接:“所有标点符号字符。这包括 PcPdPsPePiPfPo 类别”。如果你只想包含其中的一些(例如 Po 和 Pc),请使用字符类,像这样:[\p{Po}\p{Pc}] - p.s.w.g

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接