• 正则中1的用法---反向引用


    1、正则表达式中  “ umber” 表示反向引用,表示引用一个捕获组,需要和小括号 “()” 一起使用

    2、正则捕获组的下标从 0 开始,下标为 0 的组是整个表达式,下标为 1 的表示从左到右开始的第一个左括号所包含的值,后面的数字以此类推

    3、捕获组在匹配成功时,会将子表达式匹配到的内容,保存到内存中一个以数字编号的组里,可以简单的认为是对一个局部变量进行了赋值,这时就可以通过反向引用的方式,引用这个局部变量的值。

    4、反向引用必须要与捕获组一同使用,如果没有捕获组,而使用了反向引用的语法,不同语言的处理方式不一致,有的语言会抛异常,有的语言会当作普通的转义处理

    例子:

    
    
    let r = 'AAABBCCAAAA DDE666FF'

    //
    *表示零个或多个,所以该匹配值可以有零个或者多个 // +表示至少一个或多个,所以该匹配值至少一个或者多个 // 注意w包含数字,以下都要注意这一点 // 正常匹配单个字符 let match1 = r.match(/(w)/g) console.log('match1 :', match1) // match1 : [ 'A','A','A','B','B','C','C','A','A','A','A','D','D','E','6','6','6','F','F' ]

    //
    匹配模式:单个字符+第一个括号中的匹配值( * —— 有零个或者多个) let match2 = r.match(/(w)1*/g) console.log('match2 :', match2) // match2 : [ 'AAA', 'BB', 'CC', 'AAAA', 'DD', 'E', '666', 'FF' ]

    //
    匹配模式:单个字符+第一个括号中的匹配值( + —— 至少一个或者多个) let match3 = r.match(/(w)1+/g) console.log('match3 :', match3) // match3 : [ 'AAA', 'BB', 'CC', 'AAAA', 'DD', '666', 'FF' ]

    //
    匹配模式:单个字符+单个数字 // 注意w包含数字,以下都要注意这一点 // [ 'E6', '66' ] let match4 = r.match(/(w)(d)/g) console.log('match4 :', match4) // match4 : [ 'E6', '66' ]

    //
    匹配模式:单个字符+单个数字+第一个括号中的匹配值( * —— 有零个或者多个) // [ 'E6', '66' ] let match5 = r.match(/(w)(d)1*/g) console.log('match5 :', match5) // match5 : [ 'E6', '66' ]

    //
    匹配模式:单个字符+单个数字+第一个括号中的匹配值( + —— 至少一个或者多个) // [ '666' ] let match6 = r.match(/(w)(d)1+/g) console.log('match6 :', match6) // match6 : [ '666' ]

    //
    匹配模式:单个字符+单个数字+第一个括号中的匹配值( * —— 有零个或者多个)+第二个括号中的匹配值( * —— 有零个或者多个) // [ 'E666' ] let match7 = r.match(/(w)(d)1*2*/g) console.log('match7 :', match7) // match7 : [ 'E666' ]

    //
    匹配模式:单个字符+单个数字+第一个括号中的匹配值( * —— 有零个或者多个)+第二个括号中的匹配值( + —— 至少一个或者多个) // [ 'E666' ] let match8 = r.match(/(w)(d)1*2+/g)
    console.log('match8 :', match8) // match8 : [ 'E666' ]
    都读到最后了、留下个建议如何
  • 相关阅读:
    FAQ接口自动化_转载参考
    FAQ接口自动化_报错解决
    SpringBootRESTfulAPI平台项目-演示版01
    SpringBoot08_mysql操作
    SpringBoot07_RESTful API:获取girls表的内容
    SpringBoot06_程序自动化创建/更新数据库里的表信息
    mysqldump
    js 原型链
    node.js 事件发射器模式
    codeblocks 支持c++11
  • 原文地址:https://www.cnblogs.com/linjunfu/p/10757593.html
Copyright © 2020-2023  润新知