VS Code正则查找替换需点击右上角.*图标启用,否则\d、^、$等无效;默认快捷键为Ctrl+H(Windows/Linux)或Cmd+H(macOS);使用JavaScript风格正则语法。

VS Code 正则查找替换怎么打开
默认快捷键是 Ctrl+H(Windows/Linux)或 Cmd+H(macOS),点开后右上角有个 .* 图标,必须点击它才能启用正则模式。没点这个图标,所有输入都按纯文本匹配,\d、^、$ 这些全无效。
常见错误:写了一堆正则表达式却没生效,八成是忘了点那个 .* 按钮——它不是装饰,是开关。
常用正则语法在 VS Code 里怎么写
VS Code 使用的是 JavaScript 风格的正则引擎,不支持 \K、(? 等 PCRE 特性,但基础功能够用。注意几个关键差异:
-
\d、\w、\s可用,但\D、\W、\S在某些旧版中可能不稳定,建议显式写[^\d]等 - 捕获组用
(),替换时用$1、$2引用,不是\1 - 多行匹配需开启
^和$匹配行首/行尾:勾选左下角的^$按钮(或按Alt+Shift+R) - 要跨行匹配?不能直接用
.,得写[\s\S]或(.|\n)—— 因为.默认不匹配换行符
例如把所有 console.log(...) 替换成 debugger;:
查找:console\.log\([^)]*\)
替换:debugger;
替换时保留部分内容怎么操作
核心靠捕获组 + $n 占位符。比如想把 class="btn primary" 中的 primary 提取出来,加个前缀变成 class="btn is-primary":
查找:class="([^"]*) primary"
替换:class="$1 is-primary"
注意点:
- 括号要转义:正则里的字面量
(、)、[、]、.、+、*、?、|、{、}都得加反斜杠 - 如果替换内容含
$符号,比如想输出$price,得写成$$price(两个$表示一个字面量$) - 想用整个匹配内容,用
$&;想用左边内容,用$`;右边用$'—— 但这些在复杂场景容易出错,优先用明确捕获组
全局替换和文件范围怎么控制
默认只在当前文件生效。要批量处理多个文件:
- 点查找框右上角的三个点
⋯→ 选Find in Files(或按Ctrl+Shift+F) - 在
files to include栏填路径模式,如:src/**/*.ts、**/*.js、!node_modules/** - 替换前务必先点
Find All,预览匹配结果——VS Code 不会二次确认,点Replace All就直接改了 - 误操作后可用
Ctrl+Z撤销,但仅限当前文件;跨文件替换无法一键撤销,只能靠git checkout回退
真正麻烦的是嵌套结构或非平衡括号场景,比如想提取 JSX 中某个属性值,正则很容易漏匹配或过度匹配。这种时候别硬刚,该写脚本就写脚本,别迷信查找替换能解决一切。










