某处是否有 UTF-8 的仅语言字符区域列表?
我正在尝试以识别不同语言字符的方式分析一些 UTF-8 编码的文档。对于我的工作方法,我需要忽略非语言字符,例如控制字符、数学符号等。仅仅尝试剖析 UTF 标准的基本拉丁语部分就导致了多个区域,其中除号等字符就在其中一系列有效拉丁字符的中间。
是否有一个列表可以识别这些区域?或者更好的是,定义区域的正则表达式或 C# 中可以识别不同字符的内容?
I'm trying to analyze some UTF-8 encoded documents in a way that recognizes different language characters. For my approach to work I need to ignore non-language characters, such as control characters, mathematical symbols etc. Just trying to dissect the basic Latin section of the UTF standard has resulted in multiple regions, with characters like the division symbol being right in the middle of a range of valid Latin characters.
Is there a list somewhere that identifies these regions? Or better yet, a Regex that defines the regions or something in C# that can identify the different characters?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可能对 通用 alpha 感兴趣,其定义由 中的合法内容一个 C 标识符。
You might be interested in universal alpha as defined by what's legal in a C identifier.
查看 Unicode 字符类别。您可以使用字符类语法
\p{catname}
在 C# 正则表达式中匹配这些内容。因此,要匹配小写字母,您可以使用\p{Ll}
。您可以将这些结合起来。[\p{Ll}\p{Lu}]
匹配 Ll 或 Lu 类中的字符。Look at the Unicode character categories. You can match these in C# regular expressions with the character class syntax
\p{catname}
. So to match a lower-case letter, you would use\p{Ll}
. You can combine these.[\p{Ll}\p{Lu}]
matches characters in either the Ll or Lu class.您可以使用
\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 类别列表。
You can use the
\p{XXX}
to match unicode category.For example,
\p{Cc}
matches all control characters.I guess you can use
\w
to match all letters in (L*). It is equal to[\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]
in unicode mode.See http://www.fileformat.info/info/unicode/category/index.htm a list of category.