2017-10-18 55 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

相关问题