如何在Visual Studio 2012,2013,2015和VS Code中使用正则表达式查找和替换捕获组

时间:2013-06-19 14:30:18

标签: visual-studio visual-studio-2012 visual-studio-2013 visual-studio-2015 visual-studio-code

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

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

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

4 个答案:

答案 0 :(得分:301)

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

示例(感谢syonip)

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

_platformActions.InstallApp\((.+)\)

以下作为替换它的文本:

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

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

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

答案 1 :(得分:14)

要添加一个这样的例子,我必须在我的代码中执行以下操作:

找到:

_platformActions.InstallApp\((.+)\)

替换为:

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

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

*不要忘记在查找选项

中标记“使用正则表达式”

答案 2 :(得分:4)

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

找到:

daynumMidPoint

替换为:

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

答案 3 :(得分:4)

改善上述答案: 你应该替换

_platformActions.InstallApp\((.+)\)

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

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