• 正则表达式总结与应用


    正则表达式:(.+)和(.+?)的区别

    1、符号释义

    ① () 分组符,把括号内的字符当成一个整体处理。
    ② . 与换行符外的字符都匹配,针对单字符。
    ③ + 前一字符必须存在,可以重复1次或更多次
    ④ ?跟在子串后,表示匹配前面的子串1次或0次,即前一字符可以存在也可以不存在,但是存在只能有一次;

        跟在*、+、?后,表示进入非贪婪模式,也称为惰性模式。
    
    • 1

    2、贪婪/非贪婪模式

    正则默认贪婪模式

    ①贪婪模式
    尽可能匹配最长的字符串。贪婪匹配是先看整体字符串是否匹配,如果不匹配,它会去掉字符串中的最后一个字符再次尝试匹配。以此循环,直至匹配成功。
    ②非贪婪模式
    尽可能匹配最短的字符串。惰性匹配是从左侧第一个字符向右匹配,先看是否匹配,若不匹配,就加入右侧下一个字符再次尝试匹配。以此循环,直至匹配成功。

    3、实例
    存在字符串"<1><123>"
    正则表达式<(.+)>表示尽可能匹配最长的符合规则<字符串>的内容,最终返回"<1><123>"
    ②正则表达式<(.+?)>表示尽可能匹配最短的符合规则<字符串>的内容,最终返回"<1>"

    ③截取 {{ 和 . 之间的内容:keyword1

    var text = '活动名称:{{keyword1.DATA}}'
    var regex=/\{\{(.+?)\./g;
    var result;
    while((result=regex.exec(text))!=null) {
      console.log(result[1]);
      console.log("!!!!!!!!!!!!!!!!!!!!!!!!!")
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    ④截取 # 和 # 之间的内容:customer brand order url

    var text = '亲爱的#customer#,您已成功购买了#brand#的商品,订单编号为#order#,请凭订单编号或⼿机号⾄商家处消费!#url# 请保留此短信,及时查看消费情况哦!'
    var regex=/\#(.+?)\#/g;
    var result;
    while((result=regex.exec(text))!=null) {
      console.log(result[1]);
      console.log("!!!!!!!!!!!!!!!!!!!!!!!!!")
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    引用博客:https://www.cnblogs.com/12345zjl/p/15628090.html
    https://www.jianshu.com/p/17f59898014a

  • 相关阅读:
    Zebec联合Visa推出实体借记卡持续利好生态,$ZBC表现强劲
    如何看待 30 岁学云计算,转行做云计算运维这件事?
    SpringBoot Redis 基础使用
    springboot基于Android的洗衣店预约APP毕业设计源码260839
    皕杰报表之隐藏处理
    react native环境搭建
    常见的几种限流算法
    RabbitMQ: Publish/Subscribe结构
    2023第二届陇剑杯网络安全大赛 SS Writeup
    上位机工业协议-S7COMM
  • 原文地址:https://blog.csdn.net/qq_36593748/article/details/126838926