zoukankan      html  css  js  c++  java
  • 中文正则

    ^[1-9]\d*$    //匹配正整数
    ^[A-Za-z]+$   //匹配由26个英文字母组成的字符串
    ^[A-Z]+$      //匹配由26个英文字母的大写组成的字符串
    ^[a-z]+$      //匹配由26个英文字母的小写组成的字符串

    ^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串 


    先利用find 命令输出所有的文件名和文件夹名,然后用grep查找中文名

    find . -type f 或者find . 输出所有的文件名。然后用下面的grep命令查找。

    grep 

      -P, --perl-regexp         PATTERN is a Perl regular expression

    unicode中\u4e00-\u9fa5的中文,用grep

    grep -P '[\x{4e00}-\x{9f5a}]'  test.log

      当时使用\u的时候提示-P不支持\u \l等。

     或者

    grep -P '[\p{Han}]'  test.log

    [\u4e00-\u9fa5]有什么用

    javascript采用的是utf-16 的编码方案,就是两个字节,unicode 的表现形式就是 \uxxxx 。使用[\u4e00-\u9fa5]匹配中文,\u4e00 是unicode中第一个汉字的码点,\u9fa5 是unicode中最后一个汉字的码点。

    '\u4e00' // '一'
    '\u95a5' // '龥'
     

    不过显然,最后一个码点似乎不对了。 查阅各版本unicode数据文档发现:

    6.2-7.0     \u4e00 - \u9fcc
    8.0-9.0     \u4e00 - \u9fd5
    10.0        \u4e00 - \u9fea
    11.0-12.1   \4e00 - \u9fef
    13.0        \4e00 - \u9ffc
    14.0        \4e00 - \u9fff
     

    没看见 \u9fa5 从那个版本开始的,但至少8.0版本后,中文的最后一个码点移动到了 \u9fd5

    更正的中文匹配方式 [\u4e00-\u9fff]

    '龿龿'.replace(/[\u4e00-\u9fd5]/g, '') // ''
    '你会不认识这几个字龦龯龿'.replace(/[\u4e00-\u9fd5]/g, '') // ''
     

    万能的中文匹配方式 /\p{sc=Han}/gu

    '龿龿'.replace(/\p{sc=Han}/gu, '') // ''
    '你会不认识这几个字龦龯龿'.replace(/\p{sc=Han}/gu, '') // ''
    

    中文字符

    让我们再来考虑中文字符。

    有一个 unicode 属性 Script (一个书写系统),这个属性可以有一个值:CyrillicGreekArabicHan (中文)等等,这里是一个完整的列表

    为了实现查找一个给定的书写系统中的字符,我们需要使用 Script=<value>,例如对于西里尔字符:\p{sc=Cyrillic}, 中文字符:\p{sc=Han},等等。

     

    补充

    文档数据可以在unicode官网查看:

    unicode官网

  • 相关阅读:
    Tomcat在Linux下的安装与配置
    Intel S5000VSA(SAS)主板设置RAID 步骤【转】
    eclipse 安装Subversion1.82(SVN)插件
    shell脚本分析nginx日志
    shell脚本抓取网页信息
    shell脚本备份日志
    电力项目十一--js添加浮动框
    电力项目五--主界面分析
    This function has none of DETERMINISTIC, NO SQL
    mysql导入数据失败:mysql max_allowed_packet 设置过小
  • 原文地址:https://www.cnblogs.com/youxin/p/15751101.html
Copyright © 2011-2022 走看看