【转】JS-正则表达式的反向引用

原文:https://blog.csdn.net/qq_43161149/article/details/82928324

js 正则表达式的反向引用        1 

https://regexper.com/

分析一下这个正则表达式的含义: /(?=(YYYY|YY|MM|DD|HH|mm|ss|ms))1([:/]*)/

————————————————————————————————————————

选择字符:|

            com|cn|edu   ---  选择其中一个(含有其中一个就能匹配成功)


子表达式:用()包围的就是子表达式

            str = "((/d)(/w))"

            第一个子表达式:((d)(w))

            第二个子表达式:(d)

            第三个子表达式:(w)

            子表达式:以第一个出现的 ( 为第一个表达式

        
        捕获:将匹配到的子表达式保存在RegExp对象中

            RegExp.$1:保存第一个子表达式

            RegExp.$2:保存第二个子表达式

            RegExp.$3:保存第三个子表达式
            ...


        反向引用:调用捕获到的值

            1:指向RegExp.$1

            2:指向RegExp.$2

             :指向RegExp.$n
    
例子:   

    
匹配连续相同的三个数字
        

  1.  
    var str = 'ooo111ooo222ooo333ooo123';
  2.  
     
  3.  
    var reg = /(d)11/g;
  4.  
     
  5.  
    var result = str.match(reg);
  6.  
     
  7.  
    console.log(result);//[111,222,333]


匹配类型为abab的数字
        

  1.  
    var str = 'ooo1212ooo2323ooo3434ooo1234';
  2.  
     
  3.  
    var reg = /(d)(d)12/g;// d匹配数字,1对应的是第一个表达式(d),2对应的是第二个表达式(d),g是全局匹配
  4.  
     
  5.  
    var result = str.match(reg);
  6.  
     
  7.  
    console.log(result);


匹配标签内的内容
      

  1.  
    var str = 'ooo<div>hello world!</div>234';
  2.  
     
  3.  
    var reg = /<(w+).*</1>/g;
  4.  
     
  5.  
    var result = str.match(reg);
  6.  
     
  7.  
    console.log(result);

分析
 w:  查找字母、数字、下划线
 w+:  匹配查找至少一个w的字符串
.:  查找单个字符除了换行符和行结束符
.*:  匹配查找至少零个.的字符串
/:  因为/为特殊字符,所以需要用转义符
1:  反向引用(w+)

原文地址:https://www.cnblogs.com/oxspirt/p/13646971.html