[英]Search and replace with regular expressions under Visual Studio 2003
我有一個很大的C ++代碼庫,我在一些函數變得多余的地方進行一些重構,因此應該刪除它們。 所以我想替換
MyFunc(Param)
同
Param
其中,參數可以是文字值,變量,函數調用等...從在線幫助中,我收集到搜索參數應為
MyFunc/({+}/(
和替換參數簡單
/1
但這給我的模式帶來了語法錯誤。 我是在Visual Studio下搜索並替換為正則表達式的新手。 可以輕松實現上述目標嗎? 我在這個網站上看過類似的問題,這表明我大致上處於正確的軌道,但似乎缺少一些東西。
編輯:如果您可以回答上述問題,那么它是否屬於類引用的一部分,例如
MyClass.MyFunc(Param)
要么
MyClass->MyFunc(Param)
(FWIW,我也拿起了VisualAssist的副本,希望它可以做到這一點,但似乎無法處理這種情況)。
第二次編輯:感謝Joe的正確回答,但是對於其他使用這種方法的人,請當心一些陷阱,
MyFunc(MyArray[MyOtherFunc(x)])
最終為
MyArray[MyOtherFunc(x])
和
MyFunc((SomeType)x)
最終為
(SomeTypex)
一旦進行搜索以檢查要替換的內容之前,請確保已打開修改后的文件,以防萬一需要撤消,並在開始之前備份源文件,這樣效果很好。 即使列出了陷阱,仍然可以節省大量時間。
嘗試以下方法:
查找= MyFunc\\({[^\\)]*}\\)
替換= \\1
您的斜杠是錯誤的方式,並且括號( {+}
)中的表達式無效。
這不適用於包含函數調用或其他使用括號的參數-平衡括號匹配問題無法使用正則表達式解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.