Vim匹配除字符串开头之外的所有字符

时间:2013-03-09 19:49:30

标签: regex vim

我在vim脚本中使用vim substitute函数,我想在第一个初始括号后替换所有字符。例如,假设我有一个如下所示的字符串:

]]]] foo ] bar ] baz

我想在关闭括号后删除所有内容。我怎么能匹配呢?请注意,我想在之后删除小括号,而不是字符串开头的那些。执行后,该行应该只有四个括号:

]]]]

3 个答案:

答案 0 :(得分:2)

试试这个:

:echo substitute("]]]] foo ] bar ] baz",'\(^]\+\).*','\1','g') 

这里,它回声]]]]

答案 1 :(得分:1)

ex表达式应该有效:

<击>:%S / ^] + \ S * //

:%s/\(^\]*\).*/\1/

答案 2 :(得分:0)

您可以使用

匹配字符串开头的所有右括号,直到空格为止
(^[]]*\s).+$

替换为$1(在vim中可能为\1