2015-12-04 44 views
0

我需要搜索并替换以cmc开头的字符串,并以开头的结尾处出现逗号。我已经尝试了几次迭代/"cmc.*,\{-}/\("cmc\).*\(,\=\)以及之间的所有内容,但都无济于事(过去一周搜索范围很广)。样品期望的结果:从字符串匹配到vim中的第一个逗号

“CMC”:2, “颜色”: “黑”],

什么,而不是我现在得到:

“CMC”:2,“颜色“:[”Black“],

我希望它匹配到第一个逗号,但是它会匹配最后一个逗号。先谢谢你。

回答

3

尝试/"cmc.\{-},

如果使用*,它最长可以occurence匹配;相反,\{-}匹配最短的一个。

*\{-}总是指它前面的最后一个原子;一个原子可以是简单的字母,或点.炭,或包围\(\)复杂图案...

更多的解释

另一种常见的方法来做到这样的搜索参见:h pattern-overview被搜索“除了逗号之外的所有东西”,其语法如下:[^,],所以你的问题的另一个答案是:/"cmc[^,]*,

+0

啊,是的。我从来没有意识到'\ { - }'是一个扩展,可以用来代替'*'。天才。非常感谢。 – morrcahn

相关问题