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]+) |
转义 | \e | Unicode U+001B |
响铃 | \g | Unicode U+0007 |
退格 | \h | Unicode 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 中高效地进行代码搜索和替换操作,大大提高开发效率。
© 转载需附带本文链接,依据 CC BY-NC-SA 4.0 发布。
猜你喜欢
💬 评论