Sublime中批量替换JSON需先设语法为JSON,Where框限定路径如./src/*/.json并排除node_modules,正则用非贪婪匹配防跨字段,替换后须手动保存且提交Git备份。

必须先确认文件语法模式是 JSON
Sublime 不会自动把 .json 后缀当 JSON 处理——右下角状态栏显示 Plain text 或 JavaScript 时,Find in Files 的正则可能匹配失败,或替换后格式被破坏。点击右下角语言名,手动选 JSON;若列表里没有,用 Ctrl+Shift+P → 输入 Set Syntax: JSON 强制设置。
跨文件替换前,Where 框必须填 ./**/*.json
别用 . 或留空,否则会搜到 JS、TS、HTML 里嵌的 JSON 字符串,甚至把 node_modules 里的依赖文件一起改崩。安全写法是明确限定类型和路径:
-
./src/**/*.json—— 只搜业务目录下的 JSON -
./config/*.json, ./locales/**/*.json—— 多路径逗号分隔 -
./**/*.json, -node_modules/, -dist/—— 排除常见干扰目录(注意斜杠统一用/)
正则替换 JSON 值要防贪婪、避引号嵌套
比如想把所有 "version": "1.0.0" 改成 "version": "2.0.0",不能写 "version": ".*"——它会跨行吞掉后面字段。正确做法:
详细的 Three.js 3D 图形参考,涵盖场景设置、相机、几何体、材质、光照、动画、控制器、加载器、数学工具和调试。
- 用非贪婪:
"version": "([^"]*)"→ 替换为"version": "2.0.0" - 若值含转义引号(如
"desc": "He said "hi""),基础正则会截断,得升级为:"version": "((?:[^"\]|\.)*)" - 想保留原始值只改 key 名(如
user_name→userName),避免误触字符串内容:加 scope 限定,只在string.unquoted.json外匹配,或用Find All先人工扫一遍上下文
替换后不保存 = 白干,且无法撤销
点 Replace All 后所有目标文件标签页右上角出现星号 *,这只是内存缓存。关掉窗口前必须执行:
-
Ctrl+K→ 松开 →Ctrl+B(Windows/Linux) -
Cmd+K→ 松开 →Cmd+B(macOS)
Git 提交是唯一可靠兜底——替换前 git add -A && git commit -m "pre-json-bulk-replace",不然改错一行都得手动翻历史找。

















