• 用正则表达式匹配汉字,完整总结


    提到用正则表达式匹配汉字,很容易搜到这个[\u4e00-\u9fa5],但是它不算全面,不包含一些生僻汉字。

    本文对此问题做一个梳理。

    以下是比较全面的汉字Unicode分布,参考Unicode 10.0标准(2017年6月发布):

    区块 范围 实际汉字个数/
    备注
    正则式
    CJK统一汉字

    4E00-62FF, 6300-77FF,

    7800-8CFF, 8D00-9FFF.

    20,971
    常见

    [\u4E00-\u9FFF] 或

    [一-鿆]

    CJK统一汉字扩展A区 3400-4DBF. 6,582
    罕见
    [\u3400-\u4DBF]
    CJK统一汉字扩展B区

    20000-215FF, 21600-230FF,

    23100-245FF, 24600-260FF,

    26100-275FF, 27600-290FF,

    29100-2A6DF.

    42,711
    罕见,历史
    [\U00020000-\U0002A6DF]
    CJK统一汉字扩展C区 2A700-2B73F. 4,149
    罕见,历史
    [\U0002A700-\U0002B73F]
    CJK统一汉字扩展D区 2B740–2B81F. 222
    不常见,仍在使用
    [\U0002B740-\U0002B81F]
    CJK统一汉字扩展E区 2B820–2CEAF. 5,762
    罕见,历史
    [\U0002B820-\U0002CEAF]
    CJK统一汉字扩展F区 2CEB0-2EBEF. 7,473
    罕见,历史
    [\U0002CEB0-\U0002EBEF]
    CJK兼容汉字 F900–FAFF. 472
    重复、可统一变体、公司定义
     [\uF900-\uFAFF]
    CJK兼容汉字增补 2F800-2FA1F. 542
    可统一变体
    [\U0002F800-\U0002FA1F]

    ★ 如果想表示最普遍的汉字,用:

    [\u4E00-\u9FFF]  或   [一-鿆]

    共有20950个汉字,包括了常用简体字和繁体字,等字。

    基本就是GBK的所有(21003个)汉字。也包括了BIG5的所有(13053个)繁体汉字。

    一般情况下这个就够用了。

    说明:

    仅仅未包括出现在GBK里的CJK兼容汉字的21个汉字:郎秊裏隣嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩

    CJK兼容汉字用于转码处理,日常中是用不到的,所以不包括也没什么问题。

    注意此非彼也不是常用的那个,虽然用眼睛看是一样的,参见 http://www.zhihu.com/question/20697984

    ★ 如果想表示BMP之内的汉字,也就是Unicode值<=0xFFFF之内的所有汉字,用:

    [\u4E00-\u9FFF\u3400-\u4DBF\uF900-\uFAFF]

    这个包含但不限于GBK定义的汉字,共有28025个汉字。

    说明:

    和上面相比,主要是多了CJK统一汉字扩展A区,这是1999年收录到Unicode 3.0标准里的6,582个汉字。

    CJK统一汉字扩展A区,包括了东亚各地区(陆港台日韩新越)的汉字,有很多康熙字典的繁体字。

    ★ 如果想尽可能表示所有的汉字,用:

    [\u4E00-\u9FFF\u3400-\u4DBF\uF900-\uFAFF\U00020000-U0002EBEF]

    这个包含上表的所有88342个汉字

    说明:

    1, 以上正则表达式不会匹配(英文、汉字的)标点符号不会匹配韩国拼音字、日本假名。

    2, 匹配一些日本、韩国独有的汉字。

    3, 包含了一些没有汉字的空位置,通常不碍事。

    4, \u及\U的正则语法在Python 3.5上测试通过。

    有些正则表达式引擎不认\uFFFF和\UFFFFFFFF这样的语法,可以换成\x{FFFF}试一下;有些不支持BMP之外的范围,这就没办法处理CJK统一汉字扩展B~E区,如notepad++

  • 相关阅读:
    [AngularJS] Html ngSanitize, $sce
    [AngularJS] ngModelController render function
    [MODX] 3. Placeholder +
    [MODX] 2. Chunks $
    HTTP-Runoob:HTPP Content-Type
    HTTP-Runoob:HTTP状态码
    HTTP-Runoob:HTTP请求头信息
    HTTP-Runoob:HTTP请求方法
    HTTP-Runoob:HTPP消息结构
    HTTP-Runoob:HTTP简介
  • 原文地址:https://www.cnblogs.com/animalize/p/5432864.html
Copyright © 2020-2023  润新知