2021-01-04

tcl中正则表达式的匹配问题

像+ * ? 以及{M,N}
这几种量词(匹配数量)默认是属于贪婪量词,进行贪婪匹配
什么叫做贪bai婪匹配呢?贪婪就是尽可能的多匹配,贪心的意思
比如现在目标字符串是 AAAA 四个A组成的字符串
A* 和 A+ 都会匹配 AAAA
A? 则会匹配 A
这就是贪婪匹配,实际运用中,有的时候我们却希望尽可能少的匹配
比如目标字符串 ab
此时如果我们使用了贪婪量词
. 则会匹配 ab 整个字符串
可是我们只想要匹配第一对span标签怎么办?此时就需要用到懒惰量词,意思也很明显了,能偷懒就偷懒,呵呵,懒惰量词与贪婪量词的差别就是在贪婪量词的后面加个?号,就构成了懒惰量词,如下表
贪婪量词 懒惰量词
A A*?
A+ A+?
A? A??
A A?
还是以目标字符串 AAAA 来讨论
A*?
号是匹配0次或多次,要偷懒怎么办呢?当然是最少次数了,也就是0 所以在这里匹配的结果是
没有匹配到任何内容
A+?
+是1次或多次,分析方法同上,最少次数是1次,所以匹配结果就是 A
A??
?是0次或1次,所以这里也不进行匹配,会偷懒吧,呵呵
再来看看刚刚的
ab
要匹配第一对span,用懒惰量词就是.
?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值