正则表达式匹配 vim 上两个符号之间的所有句子?

Regular Expression match all sentence between two symbols on vim?

嗨,这是我的文本文件行:

\```cpp
     addPart: partTemplate named: partName
     partCatalog at: partName put: partTemplate
```

我需要获取 ```cpp 和 ``` 之间的所有句子。

我尝试编写以下正则表达式 :%s/```cpp\n\(.*\n\)*```//gc 但它匹配文件中的所有行。请任何人帮助我解决问题。谢谢提前....

试试这个

```cpp\n(([^\n]*\n)*)```

第一个(1 不是 0)组将匹配

     addPart: partTemplate named: partName
     partCatalog at: partName put: partTemplate

问题是外面的*(那个重复的\(.*\n\))是贪心的(尽量匹配)
使用 {-} 代替尽可能少的匹配:

:%s/```cpp\n\(.*\n\)\{-}```//gc