2015-02-08 59 views
0

你好,这是我的文本文件行:正则表达式匹配vim上两个符号之间的所有句子?

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

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

我试图写下面的正则表达式:%s/```cpp\n\(.*\n\)*```//gc,但它匹配文件中的所有行。请帮助我解决问题。感谢是预先....

回答

2

的问题是,所述外*(一个重复\(.*\n\))是贪婪的(尽可能匹配)。
使用{-},而不是匹配尽可能少:

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

谢谢。它解决了我的问题, – Nagarajan 2015-02-08 13:37:03

+0

你可以做一个更多的帮助,在python正则表达式中转换同样的表达式,但表达式不支持{ - }。修改过的表达式是'''cpp \ n(。* \ n){ - }'请在此帮助我。 – Nagarajan 2015-02-08 14:32:37

0

尝试此

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

第一(1不为0)基团将匹配

 addPart: partTemplate named: partName 
    partCatalog at: partName put: partTemplate 
相关问题