VSCode 正则表达式使用指南
在 Visual Studio Code(VSCode)中,正则表达式(Regular Expressions,简称 Regex)是一个非常强大的工具,可以帮助你快速查找、替换或处理文本。以下是详细的使用方法和示例。
1. 打开搜索和替换功能
按下快捷键 Ctrl + F(Windows/Linux)或 Cmd + F(Mac)打开搜索栏。
按下快捷键 Ctrl + H(Windows/Linux)或 Cmd + Option + F(Mac)打开替换栏。
点击搜索栏右侧的 .* 图标,启用正则表达式模式。
2. 常用正则表达式语法
基本语法
\d:匹配任意数字(0-9)。
\w:匹配任意字母、数字或下划线。
\s:匹配空白字符(空格、制表符等)。
.:匹配任意单个字符(除了换行符)。
*:匹配前面的字符 0 次或多次。
+:匹配前面的字符 1 次或多次。
?:匹配前面的字符 0 次或 1 次。
{n}:匹配前面的字符恰好 n 次。
{n,}:匹配前面的字符至少 n 次。
{n,m}:匹配前面的字符至少 n 次,至多 m 次。
字符集
abc:匹配字符 a、b 或 c。
\^abc:匹配除了 a、b、c 之外的任意字符。
a-z:匹配任意小写字母。
A-Z:匹配任意大写字母。
0-9:匹配任意数字。
锚点
^:匹配行的开头。
$:匹配行的结尾。
捕获组
(abc):将 abc 作为一个捕获组,可以在替换时使用 $1 引用。
3. 示例
示例 1:删除所有空行
搜索:^\s*$
替换:留空
解释:^ 匹配行开头,\s* 匹配任意数量的空白字符,$ 匹配行结尾。
示例 2:将日期格式从 YYYY-MM-DD 改为 DD/MM/YYYY
搜索:(\d{4})-(\d{2})-(\d{2})
替换:3/2/$1
解释:(\d{4}) 捕获年份,(\d{2}) 捕获月份和日期。
示例 3:提取所有中文字符
搜索:\^\\u4e00-\\u9fff+
替换:留空
解释:匹配所有非中文字符并删除。
示例 4:匹配所有邮箱地址
搜索:a-zA-Z0-9._%+-+@a-zA-Z0-9.-+\.a-zA-Z{2,}
解释:匹配常见的邮箱格式。
示例 5:批量去除行尾多余空格
搜索:[ \t]+$
替换:留空
解释:[ \t]+ 匹配行尾一个或多个空格或制表符,$ 锚定行结尾,因此只会删除行尾空白,不会影响行首缩进和行内空格。若想同时清理行首空白,可改用 ^\s+|\s+$ 并配合全局替换。
示例 6:驼峰与下划线命名互转
搜索(下划线转驼峰):_([a-zA-Z])
替换:\U$1 不可用时改用 $1 配合手动调整,推荐写法为 _([a-z]) → \u$1 不支持的场景下使用两步:先 _([a-z]) 替换为 _$1 保留,再用编辑器大小写转换;VSCode 原生替换框支持 \u 与 \l 修饰符,因此可直接写 \u$1。
搜索(驼峰转下划线):([a-z])([A-Z])
替换:$1_$2,如需全小写可再执行一次 ([A-Z]) → _\l$1 或直接使用 \L$1_\L$2 不支持的场景下分两步处理。
解释:([a-z])([A-Z]) 用小写字母和大写字母两个捕获组定位驼峰边界,替换为 $1_$2 即可插入下划线;\u 表示把紧随其后的捕获内容首字母转为大写,\l 表示转为小写,二者是 VSCode 替换框可直接使用的写法。
4. 高级功能
多文件搜索【打开全局搜索】
在搜索栏中输入正则表达式,VSCode 会在所有文件中查找匹配的内容。
(Windows/Linux)按下 Ctrl + Shift + F
(Mac)Cmd + Shift + F
保存搜索历史
VSCode 会保存你最近使用的正则表达式,方便下次使用。
正则表达式调试
如果正则表达式不生效,可以使用在线工具(如 regex101.com)调试你的正则表达式。
5. 注意事项
在 VSCode 中,正则表达式默认是区分大小写的。如果需要忽略大小写,可以点击搜索栏右侧的 Aa 图标。
如果正则表达式包含特殊字符(如 \、(、) 等),需要正确转义。
6. 总结
- 启用方式:用 Ctrl + F / Cmd + F 打开搜索栏,Ctrl + H / Cmd + Option + F 打开替换栏,再点击搜索栏右侧的 .* 图标开启正则模式。
- 语法记忆要点:先记三类基础符号------字符类(\d、\w、\s、.)、量词(*、+、?、{n}、{n,m})和锚点(^、$),再记字符集 abc、\^abc、a-z 与捕获组 (abc)。
- 捕获组引用规则:替换时用 1、2、3 按括号出现顺序引用捕获内容,例如把 (\\d{4})-(\\d{2})-(\\d{2}) 替换为 3/2/1 即可完成日期格式转换。
- 调试排查建议:正则不生效时,先确认 .* 图标已开启、Aa 大小写选项是否符合预期,再检查特殊字符(如 \、(、))是否正确转义,必要时用 regex101.com 逐步验证。
- 范围控制:单文件替换前先用搜索预览匹配结果,多文件场景用 Ctrl + Shift + F / Cmd + Shift + F 全局搜索,确认无误后再执行替换。