zoukankan      html  css  js  c++  java
  • 【转】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+)

  • 相关阅读:
    if elseif else
    java编程思想第四版中net.mindview.util包
    eclipse git插件配置
    php面试常用算法
    数据库字段类型中char和Varchar区别
    MySQL的数据库引擎的类型及区别
    windows系统中eclipse C c++开发环境的搭建
    launch failed.Binary not found in Linux/Ubuntu解决方案
    技术团队的情绪与效率
    如何有效使用Project(2)——进度计划的执行与监控
  • 原文地址:https://www.cnblogs.com/oxspirt/p/13646971.html
Copyright © 2011-2022 走看看