Menu Home

vim sed 最小匹配

默认情况下vim使用的贪婪匹配,但是有时候我们需要的是最小匹配,通过 :h non-greedy 查看文档发现vim可以通过下面的方式来启用最小匹配:

使用 " \{-} "来替代通配符 "*"

比如有一个文件内容如下:

(a + b) + c)

现在需要把(a + b)替换成 x

贪婪匹配

:1,$s/(.*)/x/g

上面的命令会把文件内容替换成了:

x

因为是贪婪匹配,所有这里的表达式 (.*) 匹配到了第二个右括号。

最小匹配

:1,$s/(.\{-})/x/g

结果文件内容变成了:

x + c)

可以看出这里表达式 (.\{-} 只匹配了第一个右括号。

Categories: vim

Tagged as:

lnmcc

Leave a Reply

Your email address will not be published.