我意识到有很多关于这个的问题,但我发现没有一个特别提到他们指的是哪个VS版本。由于缺乏这些重要的信息,我仍然无法成功地使用我找到的答案。最常见的是
环绕{},显示捕获与\1,\2,\n
然而,这似乎是在Visual Studio中进行regex查找和替换的旧方法,它在VS 2012中不起作用。
我意识到有很多关于这个的问题,但我发现没有一个特别提到他们指的是哪个VS版本。由于缺乏这些重要的信息,我仍然无法成功地使用我找到的答案。最常见的是
环绕{},显示捕获与\1,\2,\n
然而,这似乎是在Visual Studio中进行regex查找和替换的旧方法,它在VS 2012中不起作用。
当前回答
为了添加一个例子,这里是我必须在我的代码中做的事情:
找到:
_platformActions.InstallApp\((.+)\)
替换为:
this.Platform().App($1).Install()
这将用This . platform (). app (x). install()替换对InstallApp(x)的任何调用。
*不要忘记在“查找”选项中标记“使用正则表达式”
其他回答
为了添加一个例子,这里是我必须在我的代码中做的事情:
找到:
_platformActions.InstallApp\((.+)\)
替换为:
this.Platform().App($1).Install()
这将用This . platform (). app (x). install()替换对InstallApp(x)的任何调用。
*不要忘记在“查找”选项中标记“使用正则表达式”
要改进上述答案: 你应该替换
_platformActions.InstallApp \ ((+) \)
与
this.Platform () .App ($ {1}) . install ()
如果您想在捕获后面添加一个数字,请注意${1}。$18将尝试插入第18个搜索捕获,而不是第一个附加了8的搜索捕获。
要在VS 2012和VS 2015中查找和替换,请执行以下步骤:
Surround with(),显示$1,$2,$n的捕获
示例(感谢syonip)
在查找选项中,确保选中了“使用正则表达式”,并将以下文本作为要查找的文本:
_platformActions.InstallApp \ ((+) \)
并将下面的文字替换为:
this.Platform () .App(1美元). install ()
注意:正如SLaks在下面的评论中指出的,regex语法的变化是由于VS2012切换到标准的。net regex引擎。
注意:另一位评论者指出,这在Visual Studio Code (vscode)中也适用
在Ubuntu的VSCode v(1.61.1)中 我必须在$1中放置(*someExpression*) 此时我不需要使用额外的括号,比如($1)
如果你想使用组名(使用与上面相同的示例):
找到:
_platformActions\.InstallApp\((?<mygroupname>.+)\)
替换为:
this.Platform().App(${mygroupname}).Install()