zoukankan      html  css  js  c++  java
  • 正则表达式高级应用

    以前学正则表达式,就只学学匹配规则,比如正则去判断是否手机号,邮箱等等。其实这种也不需要特意去手写了,因为能搜出一大堆。

    但是有时候的需求还真搜不出来。,比如截取某种字符串的其中一段。

    ---start---
    gggggg
    ppppppp
    ---end---
    ---start---
    aaaaaaa
    bbbbbbb
    ---end---
    ---start---
    eeeeeee
    dddddd
    ---end---
    

     一位朋友想截取倒数第二个---start---到最后一个---end---结尾。

    中间的字符不确定。

    (注意以下使用js语法)

    其实这种用字符串切割简单很多。

    var res = str.substr(str.lastIndexOf("---start---",str.lastIndexOf("---start---") - 1) + 1)

    然后用正则是这样

    var res = str.replace(/[sS]*(---start---[sS]*---start---[sS]*)/,'$1')
    

      

    不少人看到这个可能一脸懵逼。

    其实主要还是 '$1',不太清楚。

    这个是取分组的第一组,小括号包的就是一组。

    ‘$2’就是取第二组,当然你得需要两个括号

    这里[sS]*就是前面的第一个start,然后小括号是以---start---开头,所以能取到第二个start,然后小括号就是我要取的值了。

    再来写一个例子

    // leftBanDaysStr 是一段a标签 ,想取此标签的text
    var leftBanDaysStr ="<a class="ban_detail_url blue" ban_detail_url="1c21cd3f-b489-4ea2-9c74-d4d882493619" title="点击进入详情页">-7</a>";
    // 正则截取取数字
    var reg = /.*>(.*)</a>/;
    var leftBanDays = leftBanDaysStr.replace(reg, '$1');
    

      

  • 相关阅读:
    Linux下搭建PHP环境的参考文章小记
    jQuery遇到问题的小记
    小程序 login
    小程序编辑器vscode
    弹性布局详解——5个div让你学会弹性布局
    vue在页面嵌入别的页面或者是视频2
    VUE设置浏览器icon图标
    遮罩层出现后不能滚动 添加事件@touchmove.prevent
    vue 在script里写页面跳转
    axios post、get 请求参数和headers配置
  • 原文地址:https://www.cnblogs.com/SunSAS/p/14174268.html
Copyright © 2011-2022 走看看