正则之贪婪匹配和懒惰匹配

正则之贪婪匹配和懒惰匹配

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:正则

作者:黄金成     年级:2018级

撰写时间:2019年05月04日

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我们在使用正则匹配字符串时,在正则表达式加上接受重复的限定符时,它会在字符串等匹配的前提下尽可能的匹配更多的字符。例如下面的这个:

它这个虽然说是匹配到了,但是它把全部都匹配了,这个就是贪婪匹配。要是我们只要其中的一部分替换掉,那就要需要懒惰匹配了,也就是尽可能匹配少的字符,方法一共有五种。

1*:在下图中我们相比上一张图中在 h.*l 加上了一个?,h.*?l 这样我们就可以让其重复,但会尽可能少重复。

2+?:在h.l中加上+?会让正则匹配重复一次或更多次,这个会比第一个匹配的要少,因为它把重复零次排除掉了。

3??上一个是把零次排除掉的,那么这个就是匹配重复零次或一次的,重复两次都没有匹配到。

4{n,m}?这个匹配重复多少次是由自己定的,像下图我要匹配重复两次到三次的,只需在?前加{n,m},n和m分别是你想要重复的次数。

5{n,}:匹配包含至少 n个 n 的序列的字符串,就像下图一样,匹配了至少3个重复的。

知道了这些,在遇到贪婪匹配时,就可以用到这几个懒惰匹的方法。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值