美文网首页让前端飞JavaScript正则表达式
JavaScript正则表达式——分组

JavaScript正则表达式——分组

作者: 椰果粒 | 来源:发表于2018-08-01 19:05 被阅读10次

    可以将正则表达式用()分组
    ():可以记录你匹配到的内容
    \1:表示反向引用,引用第一个子表达式的内容
    \2:表示第二个子表达式的内容了
    \1\2\3等用在正则表达式中
    $0:整个str
    $1:匹配到的第一个子表达式内容
    $2:匹配到的第二个子表达式的内容
    $0$1$2用在replace的第二个参数中

    举个🌰

    // ()可以记住你已经匹配到的东西,\1表示重复第一个分组里的内容,也就是aa形式的
    var reg = /(\w)\1/g;     // ["aa", "bb", "cc", "dd", "dd"]
    // 表示相同的匹配2次,也就是一共3次
    var reg = /(\w)\1\1/g;    // ["ddd"]
    // 相同字母出现次数大于等于2次的
    var reg = /(\w)\1+/g;   // ["aa", "bb", "cc", "ddddd"]
    // aabb样式的 
    var reg = /(\w)\1(\w)\2/g;  //  ["aabb", "ccdd"]
    var str = "aabbccdddddef";    
    console.log(str.match(reg)); 
    
    "123-mm".replace(/(\d+)-([A-Za-z]+)/g,"$2")   // "mm"
    "123-mm".replace(/(\d+)-([A-Za-z]+)/g,"$1")   // "123"
    
    $1-$9分组
    这里的(\d+)表示第一个分组,对应$1
    ([a-zA-Z]+)表示第二个分组,对应$2

    3. 反向引用
    正则中的()表示一个分组,\1表示引用第一个分组一次,也就是和第一个分组内容相同才匹配

    image.png

    相关文章

      网友评论

        本文标题:JavaScript正则表达式——分组

        本文链接:https://www.haomeiwen.com/subject/rebrvftx.html