vim查找匹配非贪婪重复模式匹配

vim的匹配模式中有个非贪婪重复模式匹配很难理解,特此记录一下。
我们知道重复匹配可以指定匹配次数,使用 “{n,m}” 这样的形式。
其中 “n” 和 “m” 都是数字。在它前面的那个项将被重复 “n” 到 “m” 次 。例如 :

    /ab\{3,5}

匹配 “abbb”、“abbbb” 以及 “abbbbb”。
当 “n” 省略时,被默认为零。当 “m” 省略时,被默认为无限大。当 “,m” 省略时,就表示重复正好 “n” 次。例如:

    模式            匹配次数 
    \{,4}           0,1,2,3 或 4
    \{3,}           3,4,5 等等
    \{0,1}          0 或 1,同 \=
    \{0,}           0 或更多,同 *
    \{1,}           1 或更多,同 \+
    \{3}            3

还有另一种不太好理解的匹配方式,使用"{-n,m}"的形式。他表示匹配尽可能少的字符。
例如,以下命令:

/ab\{-1,3}

将匹配 “abbb” 中的 “ab”。-1就表示只匹配尽可能少的b,这里是一个b,然而这里的3就体现不出作用来了。
再举个例子:

/ab\{-1,3}c

将匹配"abc",“abbc”,“abbbc”。这里的-1又体现不出作用来了。
再进一步:

/ab\{-1,3}c\=

将能够匹配"abc",“abbc”,“abbbc”,“abbb” 中的 “ab”。当c存在时就会限制b的最大个数不能超过3,当c不存在时,会匹配尽可能少的b的个数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值