удаление # регион - PullRequest
       46

удаление # регион

40 голосов
/ 22 февраля 2011

Мне пришлось взять на себя проект ac #.Парень, который прежде всего разрабатывал программное обеспечение, был глубоко влюблен в #region, потому что он связал все с регионами.Это сводит меня с ума, и я искал инструмент или аддон, чтобы удалить все #region из проекта.Есть ли что-то вокруг?

Ответы [ 7 ]

62 голосов
/ 22 февраля 2011

Просто используйте встроенную в Visual Studio функцию «Найти и заменить» (или «Заменить в файлах», которую вы можете открыть, нажав Ctrl + Shift + H ).

Чтобы удалить #region, вам нужно включить сопоставление регулярных выражений; в диалоговом окне «Заменить в файлах» установите флажок «Использовать: регулярные выражения». Затем используйте следующий шаблон: «\#region .*\n», заменив совпадения на "" (пустая строка).

Чтобы удалить #endregion, сделайте то же самое, но используйте «\#endregion .*\n» в качестве шаблона. Регулярные выражения могут быть излишними для #endregion, но это не повредит (в случае, если предыдущий разработчик оставил комментарии в той же строке, что и #endregion или что-то в этом роде).


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

31 голосов
/ 14 ноября 2012

Используйте одно регулярное выражение ^[ \t]*\#[ \t]*(region|endregion).*\n, чтобы найти: регион и конечный регион.После замены на пустую строку вся строка с начальными пробелами будет удалена.

[ \t]* - находит начальные пробелы

\#[ \t]*(region|endregion) - находит #region или #endregion (а также очень редкоcase с пробелами после #)

.*\n - находит все после #region или #endregion (но в одной строке)

EDIT: ответ изменен для совместимости со старым синтаксисом регулярных выражений Visual Studio,Было: ^[ \t]*\#(end)?region.*\n (вопросительные знаки не работают для старого синтаксиса)

РЕДАКТИРОВАТЬ 2: Добавлено [ \t]* после # для обработки очень редкого случая, найденного @Volkirith

4 голосов
/ 22 февраля 2011

В «Найти и заменить» используйте {[#]<region[^]*} для Find what: и замените его пустой строкой. #EndRegion достаточно просто заменить.

3 голосов
/ 03 июня 2016

Для тех, кто использует ReSharper, это просто простой Atr-Enter в строке региона.Затем у вас будет возможность удалить области в файле, проекте или решении.

Дополнительная информация о JetBrains .

3 голосов
/ 04 февраля 2016

Если вам нужно сотрудничать с любителями регионов (и оставлять регионы нетронутыми), то я бы порекомендовал "Я ненавижу #Regions" Расширение Visual Studio. Это делает регионы терпимыми - все регионы расширяются по умолчанию, а директивы #region отображаются очень маленьким шрифтом.

0 голосов
/ 09 декабря 2016

Чтобы удалить #region с новой строкой после него, замените следующее на пустую строку:

^(?([^\r\n])\s)*\#region\ ([^\r\n])*\r?\n(?([^\r\n])\s)*\r?\n

Чтобы заменить #endregion на начальную пустую строку, замените следующее на пустую строку:

^(?([^\r\n])\s)*\r?\n(?([^\r\n])\s)*\#endregion([^\r\n])*\r?\n
0 голосов
/ 22 февраля 2011

Вы можете использовать подстановочный знак найти / заменить:

*\#region *
*\#endregion

И заменить без значения. (Обратите внимание, что # необходимо экранировать, так как Visual Stuido использует его для соответствия «любому числу»)

...