Вопрос

У меня есть решение для нескольких проектов, и нам нужно провести несколько серьезных глобальных замен.

Есть ли способ выполнить замену подстановочного знака, при которой некоторые значения остаются после замены?

Так, например, если я хочу, чтобы каждый HttpContext.Current.Сеанс [“независимое значение”] стать HttpContext.Current.Сеанс [“независимое значение”].toString() передаваемое строковое значение будет соблюдено?Я не хочу заменять “whatevervalue”, я просто хочу добавить .toString() где шаблон совпадает.

Возможно ли это в Visual Studio?

Это было полезно?

Решение

Во-первых, сделайте резервную копию ваших проектов, на всякий случай ... Всегда хорошая идея перед массовыми заменами.

Затем в диалоговом окне «Найти / заменить» установите флажок «Использовать регулярные выражения»:

В поле «Найти» используйте шаблон:

HttpContext\.Current\.Session\["{.@}"\]

и в поле "Заменить" используйте:

HttpContext.Current.Session["\1"].ToString()

Другие советы

Легко ... используйте регулярные выражения и группировки.

Найдите что: (HttpContext.Current.Session [ «whatevervalue»])

Заменить на: \ 0.ToString ();

Не забудьте проверить использование: и выбрать регулярные выражения

Вы хотите открыть расширитель "Найти параметры" и выбрать опцию "Использовать регулярные выражения".После того, как вы это сделаете, вы захотите использовать их в качестве записей поиска / замены:

Найти:

HttpContext\.Current\.Session\[{("([^"]|\")*")}\]

Заменить:

HttpContext.Current.Session[\1].ToString()

Дополнительное примечание:

Как только вы включите опцию регулярных выражений, вы сможете использовать треугольные кнопки, направленные вправо, для доступа к фрагментам синтаксиса регулярных выражений Visual Studio.

Также обратите внимание, что синтаксис регулярных выражений Visual Studio довольно гетто, поскольку он не менялся со времен Visual Studio 6 (или ранее?) - так что не принимайте какие-либо элементы синтаксиса как должное.

Например, можно было бы ожидать, что мое регулярное выражение find, приведенное выше, нарушено, потому что обратная косая черта перед двойной кавычкой неправильно экранирована, но на самом деле, установка двойной обратной косой черты там нарушит выражение, а не исправит его.

Похоже, что ни один из этих ответов не работает в Visual Studio 2013, поскольку эта версия, похоже, наконец-то переключилась на стандартный RegEx. Тем не менее, те, кто не является экспертом RegEx или те, кто привык к старому синтаксису VS Find / Replace RegEx, сочтут кнопки быстрого вызова RegEx очень полезными.

Пожалуйста, смотрите этот ответ для получения дополнительной информации, включая Find / Replace / Surround с примерами:

Visual Studio ' Найти и окружить с помощью «вместо« Найти и заменить »

Вы можете использовать Visual Assist для подобных задач. Это мощный инструмент для различных видов рефакторинга.

Вы также можете рассмотреть возможность использования бесплатного инструмента загрузки Refactor, доступного по адресу http: // www.devexpress.com/Products/NET/IDETools/RefactorASP/

Он делает гораздо больше, чем просто находит & amp; заменить, что они называют переименование членов с более понятными именами. Его различные функции помогут вам улучшить ваш код.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top