我有一串这样的字符串:
[some_strings_in_square_bracket]$ some_strings_not_in ..
[some_strings_in_square_bracket]$ some_strings_not_in ..
[some_strings_in_square_bracket]$ some_strings_not_in ..
[some_strings_in_square_bracket]$ some_strings_not_in ..
[some_strings_in_square_bracket]$ some_strings_not_in ..
我想删除括号内的所有内容以及美元符号和后面的空格。
我试过:
:g/\[.+?\]\$\s/d
但是它说没有找到模式。正则表达式在python中工作:
>>> print x
[some_strings_in_square_bracket]$ some_strings_not_in ..
[some_strings_in_square_bracket]$ some_strings_not_in ..
[some_strings_in_square_bracket]$ some_strings_not_in ..
[some_strings_in_square_bracket]$ some_strings_not_in ..
[some_strings_in_square_bracket]$ some_strings_not_in ..
>>> print re.sub('\[.+?\]\$\s', '', x)
some_strings_not_in ..
some_strings_not_in ..
some_strings_not_in ..
some_strings_not_in ..
some_strings_not_in ..
答案1
使用这个,它将用空值替换匹配的正则表达式。
:%s/^\[.*\]\$\s\+//
即使:g/\[.+?\]\$\s/d
匹配了您想要的内容,d
最后也会删除该行而不是匹配的正则表达式。
至于为什么不匹配,您需要转义+
。Vim 默认将其视为文字,而不是一个或多个。