• srting__API高级查找,稽查找位置也查找内容


    高级查找: 即查找每个关键词内容,又查找位置
    var arr=reg.exec(str);
    表示:在str中查找下一个符合reg规则的关键词的内容和位置,没有就返回null

    固定套路: 查找每个关键词的内容和位置
    var arr=null;
    while((arr=reg.exec(str))!=null){
    arr: ["关键词",$1,$2,... index:位置] //返回的是一个arr数组
    0
    }

      原理: reg对象中有一个lastIndex=0属性,规定了exec下次开始查找的位置——不用手动维护
      exec每执行一次,做三件事:
      1.将关键词内容,放入数组第0个元素
      2.将关键词位置,放入数组的index属性
      3.自动将reg的lastIndex+关键词的长度  
        导致下次自动跳过关键词,找下一个
      强调: 也是一个一个找,每找一个新的,都会替换数组中旧的关键词。

    简写: 如果只获得分组子内容,不需要完整关键词
    RegExp.$n -> 可获得本次查找到的第n个分组的子内容
    while(reg.exec(str)!=null){
    RegExp.$n
    }

    例:


    (1)//查找每个关键词的内容和位置
    var str="No zuo no die,No can no bibi";
    var reg=/no/ig;
    var arr=null;
    while((arr=reg.exec(str))!=null){
      console.log(arr);
      console.log(
      "在位置"+arr.index+"发现敏感词"+arr[0]);
      console.log("下次从"+reg.lastIndex+"开始");
    }

     (2)如果只获得分组子内容,不需要完整关键词
    var html='<a name="#top"></a><h1>Welcome</h1><ul><li><a class="curr" href="http://tmooc.cn">go to tmooc</a></li><li><a href="http://tedu.cn" target="_blank">go to tedu</a></li></ul>';
    var reg=/<as+[^>]*?href="([^"]*?)"/ig;
    while(reg.exec(html)!=null){
       console.log(RegExp.$1);
    }

  • 相关阅读:
    GTD180007:【运维】LINUX学习
    GTD180006:【运维】安装调试GDB
    {done}GTD180005:【翻译】LISP prehistory
    ComPiler180001:【学习】编译器学习链接
    AIIE180002:AIIE2015大会主题
    AIIE180001:AIIE2016大会主题
    GTD180004:【开发】python_med
    GTD180003:【开发】python_oeis
    欧亚大帝国及一战、二战
    大洲分界线
  • 原文地址:https://www.cnblogs.com/shuimuDT/p/6122675.html
Copyright © 2020-2023  润新知