如何在Visual Studio 2012,2013和2015中使用正则expression式查找和replace来引用捕获组
我意识到有很多这方面的问题,但没有一个我发现特别引用了他们提到的VS版本。 由于缺乏这些重要的信息,我仍然无法成功地使用我find的答案。 最常见的是
- 用{}环绕,用\ 1,\ 2,\ n显示捕捉
但是,这似乎是在Visual Studio中执行正则expression式查找和replace的旧方法,并且在VS 2012中不起作用。
要在VS 2012和VS 2015中查找和replace,请执行以下操作:
- 用()包围,用$ 1,$ 2,$ n显示捕捉
例子 (感谢syonip)
在查找选项中,确保选中“使用正则expression式”,并将以下内容作为文本查找:
_platformActions.InstallApp\((.+)\)
而下面的文字就是用它来代替的:
this.Platform().App($1).Install()
注意:正如SLak在下面的注释中指出的那样,正则expression式语法的改变是由于VS2012切换到标准的.Net正则expression式引擎。
注意:另一位评论者指出,这也适用于Visual Studio代码(vscode)
要添加一个这样的例子,这是我在我的代码中必须做的事情:
找什么:
_platformActions.InstallApp\((.+)\)
用。。。来代替:
this.Platform().App($1).Install()
这将使用this.Platform()。App(x).Install()来取代对InstallApp(x)的调用。
*不要忘记在查找选项中标记“使用正则expression式”
如果您想使用群组名称(使用与上面相同的样本):
找什么:
_platformActions\.InstallApp\((?<mygroupname>.+)\)
用。。。来代替:
this.Platform().App(${mygroupename}).Install()