如何在vim中使用非贪心?

时间:2015-12-28 12:05:15

标签: regex vim greedy regex-greedy

输入

\sn{1}\gn{2}\gn{3}\sn{4}\sn{5}\gn{6}\gn{7}\sn{8}\yr{2012}

必需的输出

\sn{1}\sn{4}\yr{2012}

我使用了这段代码。但失败了。

%s/\\sn{\([^}]*\)}.*\\sn{\([^}]*\)}.*\\yr/\sn{\1}\sn{\2}\yr{\3}/gec 

1 个答案:

答案 0 :(得分:2)

vimregex中的非贪婪是.\{-}请查看:h \{-了解详情。

因此,您的:s cmd可写入:

%s/\(\\sn{[^}]*}\).\{-}\(\\sn{[^}]*}\).\{-}\(\\yr{[^}]*}\).*/\1\2\3/g