我意识到有很多关于这个的问题,但我发现没有一个特别提到他们提到的 VS 版本。由于缺少这些重要信息,我仍然无法成功使用我找到的答案。最常见的是
- 用 {} 环绕,用 \1、\2、\n 显示捕获
但是,这似乎是在 Visual Studio 中进行正则表达式查找和替换的旧方法,并且在 VS 2012 中不起作用。
我意识到有很多关于这个的问题,但我发现没有一个特别提到他们提到的 VS 版本。由于缺少这些重要信息,我仍然无法成功使用我找到的答案。最常见的是
但是,这似乎是在 Visual Studio 中进行正则表达式查找和替换的旧方法,并且在 VS 2012 中不起作用。
要在 VS 2012 和 VS 2015 中查找和替换,请执行以下操作:
示例(感谢 syonip)
在查找选项中,确保选中“使用正则表达式”,并将以下内容作为要查找的文本:
_platformActions.InstallApp\((.+)\)
以下作为替换它的文本:
this.Platform().App($1).Install()
注意:正如 SLaks 在下面的评论中指出的那样,正则表达式语法的变化是由于 VS2012 切换到标准的 .Net 正则表达式引擎。
注意:另一位评论者指出这也适用于 Visual Studio Code (vscode)
要添加一个示例,这是我必须在代码中执行的操作:
找什么:
_platformActions.InstallApp\((.+)\)
用。。。来代替:
this.Platform().App($1).Install()
这将使用 this.Platform().App(x).Install() 替换对 InstallApp(x) 的任何调用。
*不要忘记在查找选项中标记“使用正则表达式”
如果您想使用组名(使用与上面相同的示例):
找什么:
_platformActions\.InstallApp\((?<mygroupname>.+)\)
用。。。来代替:
this.Platform().App(${mygroupname}).Install()
要改善上述答案:您应该更换
_platformActions.InstallApp\((.+)\)
和
this.Platform().App(${1}).Install()
如果您想在捕获后添加一个数字,请注意${1} 。$18
将尝试插入第 18 个搜索捕获,而不是第一个8
附加的。