正则表达式用```bash替换```{.bash}

时间:2015-05-12 13:43:23

标签: regex vim

在vim中,我想替换所有

``` {.foo}

```foo

foo可以是任何东西。

:0,$ s/``` {\.([^}]+)}/```\1/没有做到这一点。它导致

 E486: Pattern not found: ``` {\.([^}]+)} 

错误。我可以使用什么正则表达式?

1 个答案:

答案 0 :(得分:3)

如果要捕获组,则需要转义()(否则它只表示左/右括号)。如果你想让它变成一个或多个,你还需要逃避+

除非g打开,否则您还需要在末尾添加gdefault标志以表示全局替换(行中的所有出现,而不仅仅是第一个出现)(在这种情况下, g实际上删除了全局标志)。您还可以使用:%s表示:0,$s

所以:

:%s/``` {\.\([^}]\+\)}/```\1/g