我试图以识别不同语言字符的方式分析一些UTF-8编码的文档。对于我的工作方法,我需要忽略非语言字符,例如控制字符,数学符号等。只是试图剖析UTF标准的基本拉丁部分导致了多个区域,像分区符号这样的字符正好在一系列有效拉丁字符的中间部分。
是否有某个列表可以识别这些区域?或者更好的是,一个正则表达式定义了C#中可以识别不同字符的区域或东西?
答案 0 :(得分:5)
查看Unicode character categories。您可以使用字符类语法\p{catname}
在C#正则表达式中匹配这些。因此,要匹配小写字母,您可以使用\p{Ll}
。你可以结合这些。 [\p{Ll}\p{Lu}]
匹配Ll或Lu类中的字符。
答案 1 :(得分:1)
您可以使用\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类别列表。
答案 2 :(得分:1)
您可能对universal alpha感兴趣,这是由C标识符中的合法内容定义的。