美文网首页
9.正则表达式元字符

9.正则表达式元字符

作者: 木有鱼丸啦 | 来源:发表于2017-11-02 14:00 被阅读0次

         正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。元字符使正则表达式具有处理能力。元字符既可以是放在[]中的任意单个字符(如[a]表示匹配单个小写字符a),也可以是字符序列(如[a-d]表示匹配a、b、c、d之间的任意一个字符,而\w表示任意英文字母和数字及下划线),下面是一些常见的元字符:

    .匹配除\n以外的任何字符(注意元字符是小数点)。

    [abcde]匹配abcde之中的任意一个字符

    [a-h]匹配a到h之间的任意一个字符

    [^fgh]不与fgh之中的任意一个字符匹配

    \w匹配大小写英文字符及数字0到9之间的任意一个及下划线,相当于[a-zA-Z0-9_]

    \W不匹配大小写英文字符及数字0到9之间的任意一个,相当于[^a-zA-Z0-9_]

    \s匹配任何空白字符,相当于[ \f\n\r\t\v]

    \S匹配任何非空白字符,相当于[^\s]

    \d匹配任何0到9之间的单个数字,相当于[0-9]

    \D不匹配任何0到9之间的单个数字,相当于[^0-9]

    [\u4e00-\u9fa5]匹配任意单个汉字(这里用的是Unicode编码表示汉字的)

    正则表达式限定符

    上面的元字符都是针对单个字符匹配的,要想同时匹配多个字符的话,还需要借助限定符。下面是一些常见的限定符(下表中n和m都是表示整数,并且0

    *匹配0到多个元字符,相当于{0,}

    ?匹配0到1个元字符,相当于{0,1}

    {n}匹配n个元字符

    {n,}匹配至少n个元字符

    {n,m}匹配n到m个元字符

    +匹配至少1个元字符,相当于{1,}

    \b匹配单词边界

    ^字符串必须以指定的字符开始

    $字符串必须以指定的字符结束

    说明:

    (1)由于在正则表达式中“ \ ”、“ ? ”、“ * ”、“ ^ ”、“ $ ”、“ + ”、“(”、“)”、“ | ”、“ { ”、“ [ ”等字符已经具有一定特殊意义,如果需要用它们的原始意义,则应该对它进行转义,例如希望在字符串中至少有一个“ \ ”,那么正则表达式应该这么写:\\+。

    (2)可以将多个元字符或者原义文本字符用括号括起来形成一个分组,比如^(13)[4-9]\d{8}$表示任意以13开头的移动手机号码。

    (3)另外对于中文字符的匹配是采用其对应的Unicode编码来匹配的,对于单个Unicode字符,如\u4e00表示汉字“一”,\u9fa5表示汉字“龥”,在Unicode编码中这分别是所能表示的汉字的第一个和最后一个的Unicode编码,在Unicode编码中能表示20901个汉字。

    (4)关于\b的用法,它代表单词的开始或者结尾,以字符串“ 123a 345b 456 789d ”作为示例字符串,如果正则表达式是“ \b\d{3}\b ”,则仅能匹配456。

    (5)可以使用“ | ”来表示或的关系,例如[z|j|q]表示匹配z、j、q之中的任意一个字母。

    相关文章

      网友评论

          本文标题:9.正则表达式元字符

          本文链接:https://www.haomeiwen.com/subject/grbopxtx.html