299

我意识到有很多关于这个的问题,但我发现没有一个特别提到他们提到的 VS 版本。由于缺少这些重要信息,我仍然无法成功使用我找到的答案。最常见的是

  • 用 {} 环绕,用 \1、\2、\n 显示捕获

但是,这似乎是在 Visual Studio 中进行正则表达式查找和替换的旧方法,并且在 VS 2012 中不起作用。

4

4 回答 4

411

要在 VS 2012 和 VS 2015 中查找和替换,请执行以下操作:

示例(感谢 syonip)

在查找选项中,确保选中“使用正则表达式”,并将以下内容作为要查找的文本:

_platformActions.InstallApp\((.+)\)

以下作为替换它的文本:

this.Platform().App($1).Install()

注意:正如 SLaks 在下面的评论中指出的那样,正则表达式语法的变化是由于 VS2012 切换到标准的 .Net 正则表达式引擎。

注意:另一位评论者指出这也适用于 Visual Studio Code (vscode)

于 2013-06-19T14:30:17.503 回答
18

要添加一个示例,这是我必须在代码中执行的操作:

找什么:

_platformActions.InstallApp\((.+)\)

用。。。来代替:

this.Platform().App($1).Install()

这将使用 this.Platform().App(x).Install() 替换对 InstallApp(x) 的任何调用。

*不要忘记在查找选项中标记“使用正则表达式”

于 2014-07-24T14:10:27.467 回答
15

如果您想使用组名(使用与上面相同的示例):

找什么:

_platformActions\.InstallApp\((?<mygroupname>.+)\)

用。。。来代替:

this.Platform().App(${mygroupname}).Install()
于 2017-10-23T15:20:01.413 回答
14

要改善上述答案:您应该更换

_platformActions.InstallApp\((.+)\)

this.Platform().App(${1}).Install()

如果您想在捕获后添加一个数字,请注意${1} 。$18将尝试插入第 18 个搜索捕获,而不是第一个8附加的。

于 2018-01-10T09:03:03.570 回答