使用Visual Studio删除文本中的空行


Answers:


174

由于Visual Studio 2012更改了其正则表达式语法,因此Ala的原始答案在VS 2012中转换为以下内容:

删除单个空白行

旧:

^:b*$\n

新:

^(?([^\r\n])\s)*\r?$\r?\n

Visual Studio 2013(感谢BozoJoe和Joe Johnston):

^\s*$\n

删除双空行

旧:

^:b*\n:b*\n

新:

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

从舌头上滚下来。

是MSDN的转换表。


13
vs2013:^ \ s + $ \ n
BozoJoe 2014年

对我来说,BozoJoe的答案在VS2012中也表现出色(更新4)
BertuPG 2014年

5
^ \ s + $ \ n更改为^ \ s * $ \ n允许(无内容)纯换行符。
乔·约翰斯顿

4
如何像使用CTRL + K + D一样使它自动化?
ErTR

这是为了在编辑器中处理字符串还是代码?
Kyle Delaney

114

这非常有用,特别是如果您想排列或比较代码,感谢回答这个问题的人,我从这里得到了答案,并想与Stackoverflow分享:

Visual Studio可以使用正则表达式删除替换操作中的空行。

  • 点击Ctrl- H(快速替换)

  • 勾选“使用正则表达式”

  • 在查找中指定 ^$\n

  • 在替换框中,删除所有内容。

  • 点击“全部替换”

所有空行将被删除。

空行的正则表达式由

行首 ^

行结束 $

越线 \n

请注意,在Windows中,通常以2个字符表示的行尾 -回车(CR,ASCII 13,\r)换行(LF,ASCII 10,\n)。

一个正则表达式删除确实不是空白的空白行(即它们没有空格): ^:b*$\n

删除双行: ^:b*\n:b*\n替换为:\n

*适用于Visual Studio 2013及更高版本:*

^\s*$\n

对于双行:

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

请在下面的@lennart的答案中查看VS2012及更高版本的正则表达式语法更新


可以像在Visual Studio 2015中清理XML文件一样令人着迷。任何人都知道如何制作快捷方式来执行此操作?
Leszek P

1
对于Visual Studio 2012及更高版本,请查看以下答案
-Alaa

1
有没有办法与自动格式化程序一起使用?
Kyle Delaney

19

在Visual Studio 2013(版本12.0.20623.01)中,我使用此正则表达式删除了空行。^\r\n在屏幕上,您可以看到由棕色正方形指示的匹配行。

Visual Studio 2013替换空行


我也尝试过这种方法,但是Visual Studio冻结了几分钟,然后仅替换了我发生的几百次!哈哈:-D
BertuPG


17

使用Visual Studio 2017及更高版本

当前文档中

使用捷径

  • 打开 工具 > 选项,或按Alt+ T+O
  • 环境选项卡下> 键盘
  • 搜索“ DeleteBlank ”并选择Edit.DeleteBlankLines
  • 添加新的快捷方式,例如Ctrl+DCtrl+E
  • 分配 > 确定

选择所有文本并点击快捷方式

在此处输入图片说明


这只会删除所选的空白行或从当前行删除到下一个非空白行。它不适合整个文档或项目。

1
在运行命令之前尝试全选,然后它将起作用。
克里斯·莫尼斯

9

要使用VS2012删除两个或多个相邻的空行,请使用以下命令:

^(?([^\r\n])\s)*\r?$\r?\n^(?([^\r\n])\s)*\r?$\r?\n

我一直在寻找一种将两个空行替换为一个的解决方案。这个对我有用。谢谢!
里卡多·弗朗萨(RicardoFrança)2016年

8

我正在使用Visual Studio 2017,以上内容都不适合我尝试 \n\r

脚步:

  1. Ctrl + H(打开查找和替换)
  2. 选择使用正则表达式(Alt + E)
  3. 输入\n\r“查找...”输入
  4. 按更换


2

安装CodeMaid,然后同时Ctrl+M, Space' to clean up the code. (It formats the code, like Format Document按Ctrl + E,D`)。您可以从解决方案资源管理器中清理更多文件。


1

在VS 2012中,用于查找和替换所有空白行的正则表达式字符串为^(?([^ \ r \ n])\ s)\ r?\ n


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.