Visual Studio 2010: поиск по шаблону заменяет регулярное выражение? - PullRequest
0 голосов
/ 09 марта 2012

Я взял на себя проект, который полон кода, подобного следующему:

if (aTraceUserids[t].Trim().ToUpper() == Userid().Trim().ToUpper())
{
    // ...
}

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

if (aTraceUserids[t].Equals(Userid(), StringComparison.InvariantCultureIgnoreCase))
{
    // ...
}

Редактировать (спасибо, Дейв, за то, что заставил меня подумать об этом):

Я знаю, что это возможно с регулярные выражения , но их трудно получить правильно и документировать, поэтому мне интересно узнать о способах, которые помогают мне как формулировать выражения, так и выполнять их.

В идеале я ищу поиск по шаблону/ заменить инструмент, который позволяет мне

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

Мне неважно, какая платформа, так как эти виды действий поиска / замены, вероятно, будут применяться и к другим большим базам кода.

Итак: подойдет любое решение на базе * nix, Windows или web.Решения на основе CygWin и / или WINE тоже хороши.(Вот почему я удалил тег VS2010 и добавил некоторые теги платформы).

1 Ответ

2 голосов
/ 13 декабря 2012

Поскольку это было изначально помечено как «Visual Studio», Visual Studio сама может выполнять поиск / замену на основе регулярных выражений, а стандартный диалог «Найти и заменить» позволит вам выбирать, нажимая «Найти далее», «Заменить 'или' Заменить все ', как вы выбрали.

Например, я недавно изменил API с

Log.Error(string message, bool someotherArg);

на

Log.Error (строковое сообщение);

И легко использовать Visual Studio для замены всего использования в моей кодовой базе этого модифицированного API, например, так:

Найти что;Log.Error ({. *}, True);

Заменить на: Log.Error (\ 1);

В обратной кавычке в строке замены \1 помещается сгруппированное регулярное выражение, содержащееся в{...} в это место в замене.

Удобный и встроенный.У меня работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...