删除#region

gsh*_*arp 40 .net c# visual-studio-addins region

我不得不接管ac #project.首先开发该软件的人深深爱上了,#region因为他用地区包装了所有东西.它让我几乎疯了,我正在寻找一个工具或插件来#region从项目中删除所有.周围有什么东西吗?

Don*_*nut 63

只需使用Visual Studio内置的"查找和替换"(或"替换文件",您可以通过按Ctrl+ Shift+ 打开它H).

要删除#region,您需要启用正则表达式匹配; 在"替换文件"对话框中,选中"使用:正则表达式".然后,使用以下模式:" \#region .*\n",将匹配替换为""(空字符串).

要删除#endregion,请执行相同操作,但使用" \#endregion .*\n"作为模式.正则表达式可能有点矫枉过正#endregion,但它不会受到伤害(如果之前的开发人员曾将评论留在同一行#endregion或某事上).


注意:其他人已经发布了适用于您的模式,它们与我的略有不同,但您会得到一般的想法.

  • 我仍然喜欢它.今天杀死了620个地区.感觉真好 :-) (12认同)
  • 这是疯狂的谈话. (4认同)
  • 这几乎是令人尴尬的。在 Visual Studio 的 10 年里,我从未使用过通配符/正则表达式搜索。:-p (2认同)
  • 可能需要在正则表达式的末尾添加“\n”,这样就不会留下过多的空行。 (2认同)
  • 我只是在删除了endregion之后的空间后才开始工作 (2认同)

Cop*_*ick 31

使用一个正则表达式^[ \t]*\#[ \t]*(region|endregion).*\n找到:region和endregion.用空字符串替换后,将删除带有前导空格的整行.

[ \t]* - 找到前导空格

\#[ \t]*(region|endregion) - 找到#region或#endregion(在#之后也是非常罕见的空格)

.*\n - 在#region或#endregion之后找到所有内容(但在同一行)

编辑:答案已更改为与旧的Visual Studio正则表达式语法兼容.是:( ^[ \t]*\#(end)?region.*\n问号不适用于旧语法)

编辑2:[ \t]*在#之后添加以处理@Volkirith发现的非常罕见的案例

  • 先生,您是救生员!我必须继承一个项目,因为每种方法都包装在一个区域中。每一种方法! (2认同)