VSCode搜索替换支持正则表达式,启用后可用()捕获、$1引用分组,(?s)实现跨行匹配,需注意JavaScript正则限制及转义规则。

VSCode 的搜索替换功能支持正则表达式,掌握几个关键技巧就能大幅提升代码重构和文本处理效率。
启用正则模式
在搜索框(Ctrl+F 或 Cmd+F)或全局搜索(Ctrl+Shift+F)中,点击右上角的 .* 图标,或按 Alt+R(Windows/Linux) / Cmd+Alt+R(macOS),即可开启正则匹配。此时输入的模式会按正则语法解析,比如 \d+ 匹配数字,^ 和 $ 分别匹配行首和行尾。
常用捕获与引用
用小括号 () 捕获内容,替换时用 $1、$2 引用对应分组。例如:
- 搜索:
(const|let|var)\s+(\w+)\s*=\s*(.+); - 替换:
const $2 = $3; - 效果:把所有
let x = 1;或var y = 'a';统一转为const声明
注意:VSCode 使用的是 JavaScript 风格正则,不支持 \K 或条件断言等高级特性,但 $&(整个匹配)、$`(左侧文本)、$'(右侧文本)都可用。
跨行与多行匹配
默认正则不匹配换行符。如需跨行操作:
- 在搜索框中启用 .* 后,用
[\s\S]代替.(因为.不匹配换行) - 或使用
(?s)开启单行模式(dotall),让.匹配包括换行在内的所有字符。例如:(?s)\/\*\*([\s\S]*?)\*\/可安全匹配多行 JSDoc 注释
替换时保持结构清晰,建议先用“查找全部”预览匹配结果,避免误替换。
大小写与特殊字符处理
搜索时默认区分大小写,可点击 Aa 切换;需要精确匹配引号、反斜杠、美元符等,在搜索或替换字段中要适当转义:
-
\\表示字面量反斜杠 -
\$在替换字段中表示字面量$(否则会被当作分组引用) - 双引号字符串中写正则,注意 JSON 或 JS 字符串转义层级(如搜索
"name": "([^"]*)",替换为"title": "$1")
批量修改 JSON 键名、提取注释、清理 console.log 等场景,靠这几条就足够应对大部分需求。
基本上就这些——不需要记太多语法,记住分组引用、跨行写法和转义规则,日常开发已经很顺手了。










