2017-10-18 122 views
0

我使用C#在Visual Studio 2017年(也有ReSharper的9),遇到下列問題就來了:如何替換參數名稱只爲一個特定的類實例,而不是在代碼的其他部分?

我實例很多類這樣的:

new SystemMessage(SystemMessageType.Error, _internalId, "Request Failed: RequestAvailableScripts", e) 

我的目標是,以取代參數名internalIdentityId。我無法進行全局查找/替換,因爲internalId也出現在其他地方。我只想在new SystemMessage(....)的構造函數中替換參數名稱。我不熟悉正則表達式,並且未能理解如何處理構造函數的第一個參數SystemMessageType.Error,因爲Error只是一個可能的枚舉SystemMessageType . I want to replace the argument name _internalId within **all**新SystemMessage(....)第一個參數傳遞給類的構造函數。

編輯:更清楚的是,該類的構造函數中的第1,第3和第4個參數不同,所以無論我想要替換第二個參數的名稱,但只在此特定的類構造函數中,而不是在代碼的其他部分。

+0

喜歡[此](https://regex101.com/r/mNt4fs/ 2)? – Gurman

+0

正是我所期待的,非常感謝。隨意寫一個單行的答案,我可以標記它完成。 –

+0

發表回覆:) – Gurman

回答

1

嘗試此正則表達式:

(new SystemMessage\([^)]*?)(_internalId)

替換用:

$1entityId

Click for Demo

相關問題