Как вы ссылаетесь на группу захвата с помощью поиска и замены регулярных выражений в Visual Studio 2012, 2013, 2015 и VS Code
Я понимаю, что есть много вопросов об этом, но никто из них, которые я нашел, не упоминал, какую версию VS они упомянули. Поскольку этой важной информации не хватало, я все еще не смог успешно использовать полученные ответы. Наиболее распространенным был
- Окружать с {}, отобразить захват с помощью \1,\2,\n
Однако, похоже, это старый метод поиска и замены regex в Visual Studio, и он не работает в VS 2012.
Ответы
Ответ 1
Чтобы найти и заменить в VS 2012 и VS 2015, вы делаете следующее:
Пример (благодаря syonip)
В параметрах поиска убедитесь, что "использовать регулярные выражения" отмечен, и в качестве текста найдите следующее:
_platformActions.InstallApp\((.+)\)
И в качестве текста для замены:
this.Platform().App($1).Install()
Примечание.. Как отмечает SLaks в комментарии ниже, изменение синтаксиса regex связано с переходом VS2012 на стандартный механизм регулярных выражений .Net.
Примечание.. Другой комментатор отметил, что это также работает в Visual Studio Code (vscode), а также
Ответ 2
Чтобы добавить пример этого, вот что мне нужно сделать в моем коде:
Найти что:
_platformActions.InstallApp\((.+)\)
Заменить на:
this.Platform().App($1).Install()
Это заменяет любой вызов InstallApp (x) с помощью this.Platform(). App (x).Install().
* Не забудьте отметить "Использовать регулярные выражения" в "Параметры поиска"
Ответ 3
Чтобы улучшить ответы выше:
Вы должны заменить
_platformActions.InstallApp\((.+)\)
с
this.Platform().App(${1}).Install()
Запомните $ {1}, если хотите добавить число после захвата. $18
попытается вставить 18-й захват поиска, а не первый с добавленным 8
.
Ответ 4
Если вы хотите работать с использованием имен групп (используя тот же пример, что и выше):
Найдите что:
_platformActions\.InstallApp\((?<mygroupname>.+)\)
Заменить на:
this.Platform().App(${mygroupname}).Install()