Найти и заменить в файлах - .NET дружественный синтаксис регулярных выражений - PullRequest
3 голосов
/ 26 февраля 2009

Я ищу достойный инструмент, который может выполнять поиск и замену по нескольким файлам с синтаксисом регулярных выражений, который я использую в C #. Обычно я делал бы это в Visual Studio, за исключением того, что он имеет самый странный синтаксис регулярных выражений (и это должно быть быстрее, чем просто замена текста в файлах вручную).

До сих пор я пробовал Windows grep, но ему не нравилось регулярное выражение ниже. Это регулярное выражение

<see cref="(?<class>.+)">(.+)</see>

Заменить на

<see cref="${class}"/>

Альтернативно преобразование этого в синтаксис Visual Studio было бы хорошо!

У Джеффа есть целый пост об этом в его блоге.

Ответы [ 5 ]

3 голосов
/ 26 февраля 2009

Есть несколько вариантов:

  • Если вы регулярно этим занимаетесь, я бы выбрал PowerGrep , поскольку это, пожалуй, самый полный и удобный инструмент для этого.

  • У его родного брата, RegexBuddy также есть функциональность Grep, хотя и не такая всеобъемлющая.

  • Если вы не боитесь Perl, вы также можете использовать его командную строку в качестве инструмента поиска и замены .

  • В противном случае, есть еще почтенный sed , который работает на Windows .

3 голосов
/ 26 февраля 2009

В Visual Studio вы можете сделать это с помощью следующего стандартного примера:

\<see cref="{.+}"\>.+\</see\>

Заменить:

<see cref="\1" />

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

Я давно думал, что это отстой, что Visual Studio не поддерживает тот же синтаксис регулярных выражений, что и .Net framework.

3 голосов
/ 26 февраля 2009

В Visual Studio найдите:

\<see cref="{:i}"\>.*\</see\>

и заменить на:

<see cref="\1"/>

{} - оператор группировки VS. Это не названо. В заменах \ n используется для значения n-й группы в выражении поиска.

Вы можете настроить части :i и .*, если вам необходимо учитывать новые строки или другие пробелы.

1 голос
/ 27 февраля 2009

Вы можете использовать .NET Regular Expression AddIn, чтобы позволить вам использовать .NET регулярные выражения с Visual Studio. Это на CodeProject на http://www.codeproject.com/KB/macros/VS2005RegexAddIn.aspx.

Mike

1 голос
/ 26 февраля 2009

notepad ++ довольно популярен и легок и обладает такой функциональностью, вы пробовали это?:

http://notepad -plus.sourceforge.net / ик / site.htm

EDIT: Казалось бы, моя ссылка устарела, и это использование только недавно:

http://www.opensourcereleasefeed.com/release/show/notepad-v5-2-released-replace-in-files-feature-added

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