2010-02-25 108 views
0

我有一個很大的C++代碼庫,我正在做一些重構,其中一些函數已經變得多餘,因此應該刪除。所以,我想更換在Visual Studio 2003下搜索並用正則表達式替換

MyFunc(Param) 

Param 

其中,param可以是一個字面值,變量,函數調用等等......從在線幫助我收集的搜索參數應該是

MyFunc/({+}/(

和替換參數只是

/1 

但是這給了我一個語法錯誤在我的模式。我是新來的搜索和視覺工作室下的正則表達式替換。上述可以輕鬆實現嗎?我曾在這個網站上看過類似的問題,這表明我大致在正確的軌道上,但似乎缺少一些東西。

編輯:如果你可以回答上述問題,那麼如果它是類別尊重的一部分,

MyClass.MyFunc(Param) 

MyClass->MyFunc(Param) 

(FWIW,我也拿起VisualAssist的副本,希望它可以做到這一點,但它似乎沒有能夠處理這種情況)。

第二個編輯:感謝Joe正確的迴應,但對於其他人使用這種方法,提防一些陷阱,

MyFunc(MyArray[MyOtherFunc(x)]) 

最終成爲

MyArray[MyOtherFunc(x]) 

MyFunc((SomeType)x) 

結束爲

(SomeTypex) 

一旦你做一個搜索,檢查你得到了什麼做了搜索之前和更換,一定要保持修改的文件打開你需要撤銷案件,並備份開始前,你的源文件,這個效果很好足夠。即使列出了陷阱,仍然是一個巨大的時間節省。

回答

2

試試這個:

查找= MyFunc\({[^\)]*}\) 更換= \1

你的斜槓是圍繞着錯誤的方式,並在括號中的表達式({+})是無效的。

這對包含函數調用或其他括號使用的參數不起作用 - 平衡括號匹配問題不能用正則表達式解決。

+0

非常感謝喬,工作就像一個魅力。 – 2010-02-25 10:59:21

相關問題