vscode 使用正则查找替换

一、开启正则查找替换模式

首先需要打开VS Code的查找替换面板,并启用正则功能:

  1. 打开查找替换面板:可以使用快捷键 Ctrl + H(Windows/Linux)或 Cmd + H(Mac),也可以通过左侧活动栏的「查找」图标(放大镜)展开后切换到「替换」标签。
  2. 启用正则模式:在查找替换面板中,找到「使用正则表达式」按钮(图标是 .*),点击它即可开启(按钮亮起表示已启用,再次点击可关闭)。
    • 辅助提示:开启后,查找框和替换框会支持正则语法,同时普通的特殊字符(如 .*)会变成正则元字符,需要转义才能匹配原字符。

二、核心操作:正则查找

开启正则模式后,就可以在「查找」输入框中输入正则表达式,VS Code会实时高亮匹配的内容。

常见正则语法示例(实用场景)
正则表达式 匹配说明 适用场景
\d+ 匹配1个及以上数字(整数) 查找文档中的所有编号、数值
\w+@\w+\.\w+ 简单匹配邮箱格式 查找文档中的邮箱地址
^#.+\n 匹配以 # 开头的整行(含换行符) 查找Markdown中的一级标题
\s+ 匹配1个及以上空白字符(空格、制表符等) 查找多余的空白内容
hello\w* 匹配以 hello 开头的任意单词(后续可跟字母/数字/下划线) 查找hello相关的衍生词汇

示例:在文档中输入 user123 age25 email: test@xxx.com,输入 \d+ 会高亮 12325;输入 \w+@\w+\.\w+ 会高亮 test@xxx.com

三、核心操作:正则替换

替换功能支持「正则捕获组」,可以复用查找匹配到的内容,这是最实用的功能之一。

1. 捕获组的使用
  • 语法:查找时用 () 包裹需要捕获的内容(分组),替换时用 $1$2$3... 对应第1、2、3...个捕获组($0 对应整个匹配的内容)。

  • 示例1:批量给变量添加前缀

    • 查找:(user|name|age)(\d+)(捕获两个分组:变量前缀、数字后缀)
    • 替换:prefix_$1$2
    • 效果:user123prefix_user123age25prefix_age25
  • 示例2:调整日期格式(yyyy-mm-ddmm/dd/yyyy

    • 查找:(\d{4})-(\d{2})-(\d{2})(捕获年、月、日三个分组)
    • 替换:$2/$3/$1
    • 效果:2025-12-2612/26/2025
2. 常用替换技巧
  • 去除多余空白:查找 \s+$(匹配行尾的所有空白),替换框留空,可批量清除每行末尾的无用空格。
  • 批量注释:查找 ^(.+)(匹配非空行的整行内容),替换 // $1(给每行添加Java/JS风格注释)。
  • 提取内容:查找 .*id:"(\w+)".*(匹配包含 id:"xxx" 的行,并捕获id值),替换 $1,可批量提取所有id值并丢弃其他内容。

四、实用注意事项

  1. 转义字符:在正则中,.*+?() 等是元字符,如果要匹配这些字符本身,需要在前面加 \(如查找 . 需输入 \.,查找 ( 需输入 \()。
  2. 多行匹配:默认正则是单行匹配,若要跨多行匹配,需勾选查找替换面板中的「匹配换行符」(图标是 ,开启后 . 可以匹配换行符)。
  3. 大小写敏感:默认是大小写不敏感,若需要精确匹配大小写,勾选「大小写敏感」(图标是 Aa)。
  4. 预览效果:输入正则和替换内容后,VS Code会实时高亮匹配项,并在替换预览中显示修改后的效果,确认无误后再执行替换。
  5. 批量替换:点击「替换全部」(Alt + A)可一次性替换所有匹配项,点击「替换」可逐个替换(方便确认)。

总结

  1. 开启正则模式:Ctrl+H 打开替换面板,点击 .* 按钮启用正则功能。
  2. 核心技巧:用 () 捕获分组,替换时通过 $1/$2 复用捕获内容,实现批量调整格式。
  3. 实用场景:批量修改变量名、调整日期/编号格式、去除多余空白、批量注释/提取内容等。
相关推荐
mailangduoduo9 小时前
零基础教学连接远程服务器部署项目——VScode版本
服务器·pytorch·vscode·深度学习·ssh·gpu算力
浔川python社10 小时前
浔川代码编辑器 v5.0 上线时间公布
编辑器
山峰哥20 小时前
数据库工程与SQL调优——从索引策略到查询优化的深度实践
数据库·sql·性能优化·编辑器
Doro再努力20 小时前
Vim 快速上手实操手册:从入门到生产环境实战
linux·编辑器·vim
Doro再努力20 小时前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
骥龙1 天前
第六篇:AI平台篇 - 从Jupyter Notebook到生产级模型服务
ide·人工智能·jupyter
kun200310291 天前
如何用Obsidian+VSCode生成文案排版并发布到公众号
ide·vscode·编辑器
徐小夕@趣谈前端1 天前
拒绝重复造轮子?我们偏偏花365天,用Vue3写了款AI协同的Word编辑器
人工智能·编辑器·word
风一样的航哥1 天前
标题:从卡顿到流畅:深度剖析 Word 2013 与 Word 2021 处理高清图片文档的性能鸿沟
编辑器
冬奇Lab1 天前
一天一个开源项目(第14篇):CC Workflow Studio - 可视化AI工作流编辑器,让AI自动化更简单
人工智能·开源·编辑器