Visual Studio 2012 2013 2015版本 快速删除代码空行

在 Visual Studio 2008/2010 版本中,使用下述方法可以快速删除代码空行:

  • 快捷键: Ctrl + H
  • 查找内容: ^:b*$\n
  • 替换为: 空
  • 查找范围: 当前文档
  • 查找选项: 使用正则表达式
  • 操作: 点击"全部替换"

而在 2012 以后的版本中,上述方式无效,因为新版本改变了正则表达式的写法。

故将上述的正则表达式改为:^(?([^\r\n])\s)*\r?$\r?\n 或者 ^\s*(?=\r?$)\n 即可。

Visual Studio 正则表达式语法参考

以下是官方提供的正则表达式写法:

正则表达式是一种用于查找和替换文本模式的简洁而灵活的表示法。Visual Studio 中使用的正则表达式是 Visual C++ 6.0 中使用的表达式的超集,具有简化的语法。

您可以在"查找"、“替换”、“在文件中查找"或"在文件中替换"对话框中使用以下正则表达式来优化和扩展搜索。

注意:在将以下任何表达式用作搜索条件的一部分之前,必须选中"查找”、“替换”、“在文件中查找"和"在文件中替换"对话框中的"使用"复选框。

基本正则表达式语法

表达式语法描述
任意字符.匹配除换行符外的任何一个字符
最大匹配 - 零次或多次*匹配前面表达式的零次或多次出现
最大匹配 - 一次或多次+匹配前面表达式的至少一次出现
最小匹配 - 零次或多次@匹配前面表达式的零次或多次出现,匹配尽可能少的字符
最小匹配 - 一次或多次#匹配前面表达式的一次或多次出现,匹配尽可能少的字符
重复 n 次^n匹配前面表达式的 n 次出现。例如:[0-9]^4 匹配任何 4 位数字序列
字符集[]匹配 [] 内的任何一个字符。要指定字符范围,请列出起始字符和结束字符,用连字符 (-) 分隔,如 [a-z]
不在字符集中的字符[^...]匹配 ^ 后面的字符集中不包含的任何字符
行首^将匹配锚定到行首
行尾$将匹配锚定到行尾
单词开头<仅当单词在此点开始时匹配
单词结尾>仅当单词在此点结束时匹配
分组()对子表达式进行分组
|匹配 OR 符号 (|) 之前或之后的表达式。主要在组内使用。例如:(sponge|mud) bath 匹配 “sponge bath” 和 “mud bath”
转义\匹配反斜杠 () 后面的字符。这允许您查找正则表达式表示法中使用的字符,如 { 和 ^。例如:\^ 搜索 ^ 字符
标记表达式{}标记封闭表达式匹配的文本
第 n 个标记文本\n在查找或替换表达式中,表示第 n 个标记表达式匹配的文本,其中 n 是 1 到 9 的数字。在替换表达式中,\0 插入整个匹配的文本
右对齐字段\(w,n)在替换表达式中,在至少 w 个字符宽的字段中对第 n 个标记表达式进行右对齐
左对齐字段\(-w,n)在替换表达式中,在至少 w 个字符宽的字段中对第 n 个标记表达式进行左对齐
阻止匹配~(X)当 X 出现在表达式中的此点时阻止匹配。例如:real~(ity) 匹配 “realty” 和 “really” 中的 “real”,但不匹配 “reality” 中的 “real”
字母数字字符:a匹配表达式 ([a-zA-Z0-9])
字母字符:c匹配表达式 ([a-zA-Z])
十进制数字:d匹配表达式 ([0-9])
十六进制数字:h匹配表达式 ([0-9a-fA-F]+)
标识符:i匹配表达式 ([a-zA-Z_$][a-zA-Z0-9_$]*)
有理数:n匹配表达式 (([0-9]+.[0-9]*)|([0-9]*.[0-9]+)|([0-9]+))
引用字符串:q匹配表达式 ((\"[^\"]*\")|('[^']*'))
字母字符串:w匹配表达式 ([a-zA-Z]+)
十进制整数:z匹配表达式 ([0-9]+)
转义\eUnicode U+001B
响铃\gUnicode U+0007
退格\hUnicode U+0008
换行\n匹配与平台无关的换行符。在替换表达式中,插入换行符
制表符\t匹配制表符,Unicode U+0009
Unicode 字符\x####\u####匹配由 Unicode 值给定的字符,其中 #### 是十六进制数字。您可以使用 ISO 10646 代码点或给出代理项对值的两个 Unicode 代码点来指定基本多语言平面之外的字符(即代理项)

Unicode 字符属性匹配

下表列出了按标准 Unicode 字符属性匹配的语法。两个字母的缩写与 Unicode 字符属性数据库中列出的相同。这些可以作为字符集的一部分指定。例如,表达式 [:Nd:Nl:No] 匹配任何类型的数字。

表达式语法描述
大写字母:Lu匹配任何一个大写字母。例如::Luhe 匹配 “The” 但不匹配 “the”
小写字母:Ll匹配任何一个小写字母。例如::Llhe 匹配 “the” 但不匹配 “The”
首字母大写字母:Lt匹配组合大写字母和小写字母的字符,例如 Nj 和 Dz
修饰字母:Lm匹配用于指示对前一个字母的修改的字母或标点符号,例如逗号、交叉重音和双引号
其他字母:Lo匹配其他字母,例如哥特式字母 ahsa
十进制数字:Nd匹配十进制数字,如 0-9 及其全角等效字符
字母数字:Nl匹配字母数字,如罗马数字和表意数字零
其他数字:No匹配其他数字,如古意大利数字一
开标点符号:Ps匹配开标点符号,如开括号和开大括号
闭标点符号:Pe匹配闭标点符号,如闭括号和闭大括号
初始引号标点符号:Pi匹配初始双引号
最终引号标点符号:Pf匹配单引号和结束双引号
破折号标点符号:Pd匹配破折号标记
连接标点符号:Pc匹配下划线或下划线标记
其他标点符号:Po匹配逗号 (,)、?、"、!、@、#、%、&、*、\、冒号 (:)、分号 (;)、’ 和 /
空格分隔符:Zs匹配空格
行分隔符:Zl匹配 Unicode 字符 U+2028
段落分隔符:Zp匹配 Unicode 字符 U+2029
非空格标记:Mn匹配非空格标记
组合标记:Mc匹配组合标记
封闭标记:Me匹配封闭标记
数学符号:Sm匹配 +、=、~、|、< 和 >
货币符号:Sc匹配 $ 和其他货币符号
修饰符号:Sk匹配修饰符号,如抑扬符、重音符和长音符
其他符号:So匹配其他符号,如版权符号、段落符号和度符号
其他控制字符:Cc匹配行尾
其他格式字符:Cf格式化控制字符,如双向控制字符
代理项:Cs匹配代理项对的一半
其他私用区字符:Co匹配来自私用区的任何字符
其他未分配字符:Cn匹配未映射到 Unicode 字符的字符

附加字符属性

除了标准 Unicode 字符属性外,还可以指定以下附加属性。这些属性可以作为字符集的一部分指定。

表达式语法描述
字母:Al匹配任何一个字符。例如::Alhe 匹配单词如 “The”、“then” 和 “reached”
数字:Nu匹配任何一个数字或数字
标点符号:Pu匹配任何一个标点符号,例如 ?、@、’ 等
空白:Wh匹配所有类型的空白,包括出版和表意空格
双向:Bi匹配从右到左脚本的字符,如阿拉伯语和希伯来语
韩文:Ha匹配韩文 Hangul 和组合 Jamos
平假名:Hi匹配平假名字符
片假名:Ka匹配片假名字符
表意文字/汉字/日文汉字:Id匹配表意文字,如汉字和日文汉字

通过掌握这些正则表达式语法,您可以在 Visual Studio 中高效地进行代码搜索和替换操作,大大提高开发效率。

💬 评论