我正在尝试将包含模式s#_decoded_block[
的行替换为s#_decoded_block_
。我用来执行此操作的命令是%s/s\d\+_decoded_block\\[/s\d\+_decoded_block_/g
。
我希望获得s#_decoded_block_
替换,但我得到sd+_decoded_block_
。请让我知道我做错了什么。感谢。
答案 0 :(得分:1)
问题是\d
和+
仅在搜索文本中有意义,而不在替换文本中。如果要捕获匹配的内容,然后在替换文本中使用它,则需要一个匹配组:
%s/\(s\d+_decoded_block\)\[/\1_/
在这种情况下,我为你想要保留的所有东西加盖了,以便不必重新输入它。