我正在尝试以一种识别不同语言字符的方式分析一些UTF-8编码的文档。为了使我的方法有效,我需要忽略非语言字符,例如控制字符、数学符号等。仅仅尝试解析UTF标准的基本拉丁部分就导致了多个区域,其中像除法符号这样的字符正好位于有效拉丁字符范围的中间。
是否有一个可以识别这些区域的列表?或者更好的是,一个定义这些区域的正则表达式或C#中可以识别不同字符的东西?
是否有一个可以识别这些区域的列表?或者更好的是,一个定义这些区域的正则表达式或C#中可以识别不同字符的东西?
请查看Unicode 字符类别。您可以使用字符类语法\p{catname}
在C#正则表达式中匹配它们。因此,要匹配小写字母,您将使用\p{Ll}
。您可以组合这些。 [\p{Ll}\p{Lu}]
匹配Ll或Lu类中的字符。
您可以使用\p{XXX}
来匹配Unicode类别。例如,\p{Cc}
匹配所有控制字符。
我猜您可以使用\w
来匹配(L*)中的所有字母。 在Unicode模式下等价于[\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]
。
请参见http://www.fileformat.info/info/unicode/category/index.htm类别列表。