zoukankan      html  css  js  c++  java
  • day22 re模块之元字符

    元字符 描述
    .(点号) 匹配除换行符( )以外的所有字符。要匹配包括“ ”在内的任何字符,使用“[sS]”的模式。
    ^ 从字符串首位匹配。书写时必须写在首位,否则匹配为空。
    $ 从字符串末尾匹配。书写时必须写在末尾,否则匹配为空。
    * 重复匹配任意多次(包括0次)。
    + 重复匹配任意多次(不包括0次)。
    ? 匹配0次或1次。
    {n} n是一个非负整数。匹配确定的n次。
    {n,} 至少匹配n次。
    {n,m} m和n均为非负整数,其中n<=m。最少匹配n次且最多匹配m次。
    [xyz] 字符集。匹配字符集中任何一个字符。
    [a-z] 字符集范围。范围内所有的字符都可以匹配。取消其元字符的功能(见注释1)。
    反斜杠。使元字符失去特殊功能;使部分普通字符实现特殊功能(见注释2)。
    ( ) 将( ) 之间的表达式定义为“组”(group),并且将匹配这个表达式的字符保存到一个临时区域。
    | 将两个匹配条件进行逻辑“或”(Or)运算。

    注释1 :如果在[ ]里面出现其他的元字符,除例外情况(见注1),那么会取消其元字符的功能,只是普通字符。
    - :如果在[ ]里面表示范围,比如[a-z],则 - 有特殊意义,此时匹配时,不会匹配到 - ,如果此时还需要匹配 - ,那么再在 [ ]里面加一个 - (加在前后都可以)。
    ^ :与出现在中括号外的意思不同,如果 ^ 出现在中括号里面,则表示取反的意思。比如 [^a,b] 表示除了 a , b(注意:这里的’,’也是一个字符,没有其他的意义) 以外所有的字符都匹配(包括换行符)。注意,如果字符串中有,在没转译的时候,匹配的结果是 \ 。

    注释2 :后面如果跟元字符,那么元字符就失去它代表的特殊意义,变为普通字符。
    例如 :* 本代表重复匹配任意多次, * 就只表示 * 这个普通字符(注意 ** 和 ** 表达的是完全不同的两个意思,自己动手试一试)。
    后面跟部分普通字符,会实现特殊意义。
    例如 : d 匹配任何十进制的数,相当于 [0-9]
    D 匹配任何非数字字符,相当于 [^0-9]
    s 匹配任何空白字符,相当于 [ fv]
    S 匹配任何非空白字符,相当于 [^ fv]
    w 匹配任何字母和数字字符,相当于 [0-9a-zA-Z]
    W 匹配任何非字母和数字字符,相当于 [^0-9a-zA-Z]
     匹配一个特殊边界(非任何字母和数字的都是特殊字符)。
    比如 : ‘i am a big man’,用 r’i’ 去匹配,只能匹配到 一个 ‘i’ ,因为 ‘big’的’i’后面跟的是’g’,不是特殊字符,故匹配不到。(注意:用这种方法匹配,前面一定要加 ‘r’ 防止转译。’’也可以放到前面)

  • 相关阅读:
    轻松搞定Ajax(分享下自己封装ajax函数,其实Ajax使用很简单,难是难在你得到数据后来怎样去使用这些数据)
    模块化开发,SesJS简单总结
    轻松实现HTML5时钟(分享下自己对canvas的理解,原来没你想像的那么难哦)
    轻松搞定javascript预解析机制(搞定后,一切有关变态面试题都是浮云~~)
    javascript中可处理的浮点数的最高精度(和小数的一些小特性)
    PyLucene检索demo
    PyLucene索引DEMO
    Lucene类介绍
    PyLucene 的安装
    写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”
  • 原文地址:https://www.cnblogs.com/douyunpeng/p/12897627.html
Copyright © 2011-2022 走看看