我想删除所有符合此正则表达式的方括号:\[.*\].*{,但我只想删除方括号,而不是后面的内容-即,仅在方括号后跟一个后缀时,我要删除方括号和其中的内容打开花括号。

我该如何使用Vim的搜索/替换功能?

最佳答案

您可以使用\zs\ze设置比赛的开始和结束。
:%s/\zs\[.*\]\ze.*{//g应该可以工作。

您告诉Vim用空字符串替换\zs\ze之间的内容。

(注意,您需要在Vim二进制文件中编译+ syntax选项)

有关更多信息,请参见:help /\zs:help pattern
编辑:实际上,在这种情况下\zs不是必需的,但出于教育目的,我将其保留。 :)

10-07 17:18