正则表达式语法 正则条件概念的应用( 三 )


字符组让这个工作变得容易起来 。这里 , 我们用:

hahaha haa hah!
作为例句 , 了解一下字符组的使用吧:
    用圆括号表示字符组 , 如(abc) , 见下例:
    /(ha) /g
    匹配结果:
    hahaha haa hah!用1表示正则表达式里的第一个字符组 , 2表示正则表达式里第二个字符组 , 3、4依次类推:
    (w)a1
    匹配结果:
    hah dad bad dab gag gab
    说明:
    此例中 , 当(w)匹配的结果为字符h , 则1就表示h 。1的匹配结果需要参考第一个字符组 , 即(w)的结果 。
五、相邻判断 匹配例句:
1pt 2px 3em 4px
1.可以用(?=ABC)、(?!ABC)的表达式 , 表示前瞻判断:
    正向前瞻判断 , 示例如下:
    表示在字符”px”前的数字:
    /d(?=px)/g
    匹配结果:
    1pt 2px 3em 4px
    说明:
    此处的(?=px)表示一个占位符 , 而非具体的字符负向前瞻判断 , 示例如下:
    表示不在字符”px”前的数字:
    /d(?!px)/g
    匹配结果:
    1pt 2px 3em 4px
    说明:
    此处的(?!px)表示一个占位符 , 而非具体的字符
2.可以用(?<=ABC)、(?
    正向回顾判断 , 示例如下:
    表示在字符”p”后的罗马字符:
    /(?<=p)w/g
    匹配结果:
    1pt 2px 3em 4px负向回顾判断 , 示例如下:
    表示不在字符”p”后的罗马字符:
    /(? 匹配结果:
    1pt 2px 3em 4px
六、数量词 匹配例句:
b be bee beer beers beeeee
    用数字表示的数量词:
      {n}表示匹配n个字符:
      /e{2}/g
      匹配结果:
      b be bee beer beers beeeee{n,}表示匹配n个以上字符:
      /e{2,}/g
      匹配结果:
      b be bee beer beers beeeee{n,m}表示匹配n到m个字符:
      /e{2,3}/g
      匹配结果:
      b be bee beer beers beee ee
2. 用特殊符号*、 、?表示的数量词:
    *表示0个或多个字符:
    /e*/g
    匹配结果:
    b be bee beer beers beeeee表示1个或多个字符:
    /e /g
    匹配结果:
    b be bee beer beers beeeee?表示0个或1个字符:
    /b?/g
    匹配结果:
    b be bee beer beers beeeee关于*和 差别的说明:
    有些小伙伴可能会困惑在匹配时*和 都是匹配多个 , 但匹配0个和1个的差别是什么?有这个问题的小伙伴可以看下例是如何匹配字符串abc:
    /a.*bc/g能匹配上述字符串;
    /a. bc/g不能匹配上述字符串 , 因为这个表达式不允许a和b没有字符;
七、贪婪模式
    . 表示用贪婪模式进行匹配:
    /bw /g
    匹配结果:
    b be bee beer beers beeeee. ?表示用非贪婪模式(懒惰模式)进行匹配

    推荐阅读