【问题标题】:Using General Unicode Properties使用通用 Unicode 属性
【发布时间】:2014-06-23 08:12:40
【问题描述】:

我正在尝试利用正则表达式功能:\p{UNICODE PROPERTY NAME}

但是,我很难理解这些属性名称的映射。

我直接访问了 Unicode.org 网站 (http://www.unicode.org/Public/UCD/latest/ucd/) 并下载了一个文件“UnicodeData.txt”,其中列出了类别...但这仅显示 27,268 个字符值。

但我知道 utf-8 或 ucs-2 中有 65k 个字符 .... 所以我很困惑为什么 Unicode.org 下载只有 24k 行。

...我在某处遗漏了一点吗?

我确定我只是在这里对一些简单的事情视而不见......如果有人能帮助我理解......我将不胜感激!

【问题讨论】:

  • 好吧,似乎有几个中文(韩文)字形被省略了:AC00;<Hangul Syllable, First>;Lo;0;L;;;;;N;;;;; ... D7A3;<Hangul Syllable, Last>;Lo;0;L;;;;;N;;;;;

标签: regex unicode


【解决方案1】:

到目前为止一切都很好。您看到的字符是 all,但 CJK 字符(中日韩)。 Unicode 联盟让主 UnicodeData 文件中的那些文件保持在合理的大小。

如果您只想查找单个字符的属性(而不是批量),您可以使用为您准备数据的网站,例如 GraphemicaFileFormat 或(我自己的)Codepoints.net

但是,如果您需要批量查找,Unicode 还提供具有特定语法的 XML file 形式的数据,将代码点组合在一起。这可能是处理数据的最佳选择。

【讨论】:

  • 超级棒!我确实在周五在另一个论坛上发布了这个 Q,但没有任何有用的回复。 StackOverflow 再次以快速和信息丰富的响应达到目标......为什么我不先来这里!? Boldewyn,非常感谢你:)
  • 不客气。我希望这是对你的一个教训,不要在其他论坛上欺骗 StackOverflow ;-)
  • @SimonB:欢迎来到 Stackoverflow!表示帖子有帮助的首选方式是投票;表示帖子answered your question 的首选方式是将其标记为“已接受”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-13
  • 1970-01-01
  • 1970-01-01
  • 2023-04-02
  • 2013-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多