今天我需要搜索哪些行包含 4 个单引号'
。
但g/'\{4,4\}
只能捕获四个连续的单引号。
所以我把我的代码变成类似:g/\[^'\]\?'\[^'\]\?'\[^'\]\?'\[^'\]\?'\[^'\]\?
.
这不起作用而且看起来很丑。
有没有一种漂亮的方法,或者至少是一种可行的方法来搜索目标模式已出现第 N 次的行?
或者更好的是,我们可以指定最小模式出现次数和最大模式出现次数?
答案1
这会做:
/^[^']*\%('[^']*\)\{4}$
它会搜索引号后跟任何非引号 ( '[^']
) 四次(\{4}
;在这里,您还可以指定范围,例如\{2,5}
)。为了确保行中的数字准确匹配,模式为锚定的开始(^[^']*
,前面带有可选的非引号)和结束($
,尾随非引号已包含在重复中)。