2015-02-08 27 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 
相關問題