如何在vim中搜索包含N个目标字符/模式的行?

如何在vim中搜索包含N个目标字符/模式的行?

今天我需要搜索哪些行包含 4 个单引号'

g/'\{4,4\}只能捕获四个连续的单引号。

所以我把我的代码变成类似:g/\[^'\]\?'\[^'\]\?'\[^'\]\?'\[^'\]\?'\[^'\]\?.

这不起作用而且看起来很丑。

有没有一种漂亮的方法,或者至少是一种可行的方法来搜索目标模式已出现第 N 次的行?

或者更好的是,我们可以指定最小模式出现次数和最大模式出现次数?

答案1

这会做:

/^[^']*\%('[^']*\)\{4}$

它会搜索引号后跟任何非引号 ( '[^']) 四次(\{4};在这里,您还可以指定范围,例如\{2,5})。为了确保行中的数字准确匹配,模式为锚定的开始(^[^']*,前面带有可选的非引号)和结束($,尾随非引号已包含在重复中)。

相关内容