在vim中从字符串匹配到第一个逗号

时间:2015-12-04 17:39:13

标签: regex search vim

我需要搜索并替换以cmc开头并以行上的逗号第一个出现结尾的字符串。我已经尝试了几次/"cmc.*,\{-}/\("cmc\).*\(,\=\)的迭代,其间的一切都无济于事(并在过去一周内进行了广泛的搜索)。样本所需结果:

“CMC”:2, “色彩”:[ “黑色”],

而不是我现在得到的:

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

我希望它与第一个逗号匹配,但它匹配到该行的最后一个逗号。提前谢谢。

1 个答案:

答案 0 :(得分:3)

尝试/"cmc.\{-},

如果您使用*,则会与可能发生的最长时间匹配;相反,\{-}匹配最短的一个。

*\{-}总是引用它前面的最后一个原子;一个原子可以是一个简单的字母,一个点.字符,或一个用\(\)括起来的复杂图案......

有关详细说明,请参阅:h pattern-overview

进行此类搜索的另一种常见方法是使用以下语法搜索"除了逗号之外的所有内容:[^,],因此您的问题的另一个答案是:{{1} }