it-swarm.com.ru

Как вы ссылаетесь на группу захвата с помощью поиска и замены регулярных выражений в Visual Studio 2012, 2013, 2015 и VS Code

Я понимаю, что есть множество вопросов по этому поводу, но ни один из тех, что я нашел, специально не ссылался на версию VS, на которую они ссылались. Из-за недостатка этой важной информации я все еще не мог успешно использовать найденные ответы. Наиболее распространенным был

  • Окружить с помощью {}, отобразить захват с помощью\1,\2,\n

Однако это, кажется, старый метод поиска и замены регулярных выражений в Visual Studio, и он не работает в VS 2012.

205
SgtPooki

Чтобы найти и заменить в VS 2012 и VS 2015, вы делаете следующее:

Пример (спасибо syonip)

В параметрах поиска убедитесь, что установлен флажок "использовать регулярные выражения", и укажите следующий текст в качестве текста для поиска:

_platformActions.InstallApp\((.+)\)

И следующее, как текст, чтобы заменить его:

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

Примечание: Как указывает SLaks в комментарии ниже, изменение синтаксиса регулярных выражений связано с переходом VS2012 на стандартный движок регулярных выражений .Net.

Примечание: Другой комментатор отметил, что это работает и в коде Visual Studio (vscode).

306
SgtPooki

Чтобы добавить пример этого, вот что я должен был сделать в своем коде:

Найти то, что:

_platformActions.InstallApp\((.+)\)

Заменить:

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

Это заменяет любой вызов InstallApp (x) на this.Platform (). App (x) .Install ().

* Не забудьте пометить "Использовать регулярные выражения" в параметрах поиска

14
syonip

Чтобы улучшить ответы выше: вы должны заменить

_platformActions.InstallApp\((.+)\)

с

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

Запомните $ {1}, если вы хотите добавить число после захвата. $18 попытается вставить 18-й захват поиска, а не первый с добавленным 8.

4
Luc Bloom

Если вы хотите работать, используя имена групп (используя тот же пример, что и выше):

Найти то, что:

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

Заменить:

this.Platform().App(${mygroupename}).Install()
4
Yepeekai