Unicode汉字范围[bak]


原文链接关于unicode汉字范围正则的写法

原来我使用的一直是:

\u4e00-\u9fa5

今天在匹配中文标点的时候匹配不上,就查了一下相关资料,原来unicode跟中文有关的范围还有好几个。

字符范围表

1.标准CJK文字

范围:

\u3400-\u4DB5
\u4E00-\u9FA5
\u9FA6-\u9FBB
\uF900-\uFA2D
\uFA30-\uFA6A
\uFA70-\uFAD9

说明:一共有好几个范围,除 u4e00-u9fa5外 都不是很常用 参考地址:http://www.unicode.org/Public/UNIDATA/Unihan.html

2.全角ASCII、全角中英文标点、半宽片假名、半宽平假名、半宽韩文字母

范围:

\uFF00-\uFFEF

参考地址:http://www.unicode.org/charts/PDF/UFF00.pdf

3.CJK部首补充

范围:

\u2E80-\u2EFF

参考地址:http://www.unicode.org/charts/PDF/U2E80.pdf

4.CJK标点符号

范围:

\u3000-\u303F

参考地址:http://www.unicode.org/charts/PDF/U3000.pdf

5.CJK笔划

范围:

\u31C0-\u31EF

参考地址:http://www.unicode.org/charts/PDF/U31C0.pdf

6.康熙部首

范围:

\u2F00-\u2FDF

参考地址:http://www.unicode.org/charts/PDF/U2F00.pdf

7.汉字结构描述字符

范围:

\u2FF0-\u2FFF

参考地址:http://www.unicode.org/charts/PDF/U2FF0.pdf

8.注音符号

范围:

\u3100-\u312F

参考地址:http://www.unicode.org/charts/PDF/U3100.pdf

9.注音符号(闽南语、客家语扩展)

范围:

\u31A0-\u31BF

参考地址:http://www.unicode.org/charts/PDF/U31A0.pdf

10.日文平假名

范围:

\u3040-\u309F

参考地址:http://www.unicode.org/charts/PDF/U3040.pdf

11.日文片假名

范围:

\u30A0-\u30FF

参考地址:http://www.unicode.org/charts/PDF/U30A0.pdf

12.日文片假名拼音扩展

范围:

\u31F0-\u31FF

参考地址:http://www.unicode.org/charts/PDF/U31F0.pdf

13.韩文拼音

范围:

\uAC00-\uD7AF

参考地址:http://www.unicode.org/charts/PDF/UAC00.pdf

14.韩文字母

范围:

\u1100-\u11FF

参考地址:http://www.unicode.org/charts/PDF/U1100.pdf

15.韩文兼容字母

范围:

\u3130-\u318F

参考地址:http://www.unicode.org/charts/PDF/U3130.pdf

16.易经六十四卦象

范围:

\u4DC0-\u4DFF

参考地址:http://www.unicode.org/charts/PDF/U4DC0.pdf

17.彝文音节

范围:

\uA000-\uA48F

参考地址:http://www.unicode.org/charts/PDF/UA000.pdf

18.彝文部首

范围:

\uA490-\uA4CF

参考地址:http://www.unicode.org/charts/PDF/UA490.pdf

19.盲文符号

范围:

\u2800-\u28FF

参考地址:http://www.unicode.org/charts/PDF/U2800.pdf

20.CJK字母及月份

范围:

\u3200-\u32FF

参考地址:http://www.unicode.org/charts/PDF/U3200.pdf

21.CJK特殊符号(日期合并)

范围:

\u3300-\u33FF

参考地址:http://www.unicode.org/charts/PDF/U3300.pdf

22.装饰符号(非CJK专用)

范围:

\u2700-\u27BF

参考地址:http://www.unicode.org/charts/PDF/U2700.pdf

23.杂项符号(非CJK专用)

范围:

\u2600-\u26FF

参考地址:http://www.unicode.org/charts/PDF/U2600.pdf

24.中文竖排标点

范围:

\uFE10-\uFE1F

参考地址:http://www.unicode.org/charts/PDF/UFE10.pdf

25.CJK兼容符号(竖排变体、下划线、顿号)

范围:

\uFE30-\uFE4F

参考地址:http://www.unicode.org/charts/PDF/UFE30.pdf

改进后的匹配表达式

  1. [\u3400-\u4DB5\u4E00-\u9FA5\u9FA6-\u9FBB\uF900-\uFA2D\uFA30-\uFA6A\uFA70-\uFAD9\uFF00-\uFFEF\u2E80-\u2EFF\u3000-\u303F\u31C0-\u31EF]

    (注:这条基本能满足要求)

  2. [\u3400-\u4DB5\u4E00-\u9FA5\u9FA6-\u9FBB\uF900-\uFA2D\uFA30-\uFA6A\uFA70-\uFAD9\uFF00-\uFFEF\u2E80-\u2EFF\u3000-\u303F\u31C0-\u31EF\u2F00-\u2FDF\u2FF0-\u2FFF\u3100-\u312F\u31A0-\u31BF\u3040-\u309F\u30A0-\u30FF\u31F0-\u31FF\uAC00-\uD7AF\u1100-\u11FF\u3130-\u318F\u4DC0-\u4DFF\uA000-\uA48F\uA490-\uA4CF\u2800-\u28FF\u3200-\u32FF\u3300-\u33FF\u2700-\u27BF\u2600-\u26FF\uFE10-\uFE1F\uFE30-\uFE4F]

    (注:这是完整版本)

额外参考链接:
,

《“Unicode汉字范围[bak]”》 有 1 条评论

  1. 文字间的战斗与其救世主 Unicode
    译自: https://itsfoss.com/unicode-linux/ 作者: Sylvain Leroux
    原创: LCTT https://linux.cn/article-15483-1.html 译者: yzuowei
    `
    # 电脑是如何储存文字的?
    计算机将字符作为数字储存。它们再通过表格将这些数字与含有意义的字形一一对应。

    # Unicode 拯救了世界
    我解释了不同国家间交换文件时会遇到的编码问题。但事情还能更糟,同一个国家的不同生产商未必会使用相同的编码。如果你在 80 年代用 Mac 和 PC 互传过文件你就懂我是什么意思了。

    也不知道是不是巧合,Unicode[7] 项目始于 1987 年,主导者来自施乐Xerox和……苹果Apple 。

    这个项目的目标是定义一套通用字符集来允许同一段文字中 同时 出现人类书写会用到的任何文字。最初的 Unicode 项目被限制在 65536 个不同字符(每个字符用 16 位表示,即每个字符两字节)。这个数字已被证实是远远不够的。

    于是,在 1996 年 Unicode 被扩展以支持高达 100 万不同的 代码点code point[8]。粗略来说,一个“代码点”可被用来识别字符表中的一个条目。Unicode 项目的一个核心工作就是将世界上正在被使用(或曾被使用)的字母、符号、标点符号以及其他文字仓管起来,并给每一项条目分配一个代码点用以准确分辨对应的字符。

    这是一个庞大的项目:为了让你有个大致了解,发布于 2017 年的 Unicode 版本 10 定义了超过 136,000 个字符,覆盖了 139 种现代和历史上的语言文字。

    随着如此庞大数量的可能性,一个基本的编码会需要每个字符 32 位(即 4 字节)。但对于主要使用 US-ASCII 范围内字符的文字,每个字符 4 字节意味着 4 倍多的储存需求以及 4 倍多的带宽用以传输这些文字。

    所以除了 UTF-32[9],Unicode 联盟还定义了更加节约空间的 UTF-16[10] 和 UTF-8[11] 编码,分别使用了 16 位和 8 位。但只有 8 位该如何储存超过 100,000 个不同的值呢?事实是,你不能。但这其中窍门在于用一个代码值(UTF-8 中的 8 位以及 UTF-16 中的 16 位)来储存最常用的一些字符。再用几个代码值储存最不常用的一些字符。所以说 UTF-8 和 UTF-16 是 可变长度 编码。尽管这样也有缺陷,但 UTF-8 是空间与时间效率之间一个不错的折中。更不用提 UTF-8 可以向后兼容大部分 Unicode 之前的 1 字节编码,因为 UTF-8 经过了特别设计,任何有效的 US-ASCII 文件都是有效的 UTF-8 文件。你也可以说,UTF-8 是 US-ASCII 的超集。而在今天已经找不到不用 UTF-8 编码的理由了。当然除非你书写主要用的语言需要多字节编码,或是你不得不与一些残留的老旧系统打交道。

    # 而这些对于打字有什么用呢?
    #
    # 我们可以避免对 Gtk 字符组合的依赖吗?
    #
    # 如果我需要的字符没有对应的组合键排序该怎么办?
    #
    # 死键(Dead Key)
    `
    [1]: https://en.wikipedia.org/wiki/ISO/IEC_8859-15
    [2]: https://en.wikipedia.org/wiki/KOI8-R
    [3]: https://en.wikipedia.org/wiki/Windows-1251
    [4]: https://en.wikipedia.org/wiki/ASCII
    [5]: https://en.wikipedia.org/wiki/Email_client
    [6]: https://en.wikipedia.org/wiki/Mojibake
    [7]: https://en.wikipedia.org/wiki/Unicode
    [8]: https://en.wikipedia.org/wiki/Code_point
    [9]: https://en.wikipedia.org/wiki/UTF-32
    [10]: https://en.wikipedia.org/wiki/UTF-16
    [11]: https://en.wikipedia.org/wiki/UTF-8
    [12]: https://en.wikipedia.org/wiki/Compose_key
    [13]: https://en.wikipedia.org/wiki/Hyphen-minus
    [14]: https://en.wikipedia.org/wiki/X_Input_Method
    [15]: http://www.fileformat.info/info/unicode/char/3042/index.htm
    [16]: http://www.fileformat.info/info/unicode/char/3086/index.htm
    [17]: http://www.fileformat.info/info/unicode/char/307F/index.htm
    [18]: https://en.wikipedia.org/wiki/Dead_key
    [19]: https://help.ubuntu.com/community/GtkDeadKeyTable
    [20]: https://www.yesik.it/
    [21]: https://github.com/lkxed
    [22]: https://github.com/yzuowei
    [23]: https://github.com/wxy
    [24]: https://github.com/LCTT/TranslateProject
    [25]: https://linux.cn/article-15483-1.html?utm_source=rss&utm_medium=rss

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注