在vim中,我想替换所有
``` {.foo}
与
```foo
foo
可以是任何东西。
:0,$ s/``` {\.([^}]+)}/```\1/
没有做到这一点。它导致
E486: Pattern not found: ``` {\.([^}]+)}
错误。我可以使用什么正则表达式?
答案 0 :(得分:3)
如果要捕获组,则需要转义(
和)
(否则它只表示左/右括号)。如果你想让它变成一个或多个,你还需要逃避+
。
除非g
打开,否则您还需要在末尾添加gdefault
标志以表示全局替换(行中的所有出现,而不仅仅是第一个出现)(在这种情况下, g
实际上删除了全局标志)。您还可以使用:%s
表示:0,$s
。
所以:
:%s/``` {\.\([^}]\+\)}/```\1/g