zoukankan      html  css  js  c++  java
  • javascript获取正则中的子匹配

    昨天帮朋友处理一段文本正好用到了这个,记录一下。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var str = '<a href="http://google.com" target="_blank">google</a>123<a title="百度" href="http://baidu.com">baidu</a>abce<a href="http://msn.com" class="msn">msn</a>kkk';
    // *? 非贪婪匹配
    var reg = /<a.*?href="([^"]*)"[^>]*>([^<]*)</a>/i;
    var arr = [];
    while(reg.exec(str)){
        arr.push({'link':RegExp.$1 , 'text':RegExp.$2});
        str = RegExp.rightContext;//将str截断
        reg.lastIndex = 0;//重置下次匹配开始的位置
    }
    console.info(arr);

    另外两种正则表达式语法有一些不同,比如说转义。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #正则表达式语法 1
    re = /pattern/[flags]
    #正则表达式语法 2
    re = new RegExp("pattern",["flags"])
     
    #比如说要匹配"潘魏增(panweizeng)",同时获取其中的子匹配panweizeng,对应的写法如下
    var reg = /[^(]+(([^)]+))/g;
    #这里需要对括号使用两个转义符号
    var reg = new RegExp("[^\(]+\(([^\)]+)\)", "g");
    var submatch;
    if(reg.exec(str)){
       submatch = RegExp.$1;
       reg.lastIndex = 0;
    }
    console.info(submatch);
  • 相关阅读:
    增删改查
    兴趣爱好
    兴趣爱好界面
    购物商城
    计算器
    安卓第四周作业
    安卓第一周作业
    第十五周作业
    十三周作业-集合
    第十三周上机练习
  • 原文地址:https://www.cnblogs.com/shihao/p/2318732.html
Copyright © 2011-2022 走看看