Notepad++可通过正则替换批量修改JSON键名大小写:先用"([a-z])([A-Z])"→"\1_\2"插入下划线,再全选按Ctrl+U转小写实现camelCase→snake_case;需确保键名规范(双引号包裹、无转义/跨行/注释),并注意该法会同步影响值中驼峰内容。

用 Notepad++ 的正则替换批量改 JSON 键名大小写
Notepad++ 本身不识别 JSON 结构,不能像 IDE 那样“智能重命名键”,但只要键名格式规整(比如 "keyName" 这种双引号包裹的字符串),就能靠正则精准定位并转换大小写。
确保 JSON 键名符合正则可匹配模式
正则只对标准 JSON 键有效,常见失效场景包括:
- 键名含转义双引号(如
"key\"name")→ 正则会提前截断 - 键名用单引号或无引号(
'key'或key:)→ 不匹配 JSON 规范,"key"才是合法键 - 键名跨行(如
"key\nName")→ 默认正则不跨行,需开启. matches newline - 注释存在(JSON 不允许注释,但有人手写带
//的伪 JSON)→ 正则可能误匹配注释里的引号
操作前建议先用 JSON 校验工具(如 jsonlint.com)确认格式合法,再在 Notepad++ 中用 Ctrl+Shift+F 全局检查是否所有键都形如 "xxx" 后跟冒号。
把驼峰键转为下划线(camelCase → snake_case)
适用场景:把 "userName" 改成 "user_name"。Notepad++ 不支持正则中直接调用大小写转换函数,得靠分步替换 + 大小写辅助功能。
步骤如下:
- 打开「查找 → 替换」(
Ctrl+H),勾选「正则表达式」 - 查找目标填:
"([a-z])([A-Z])→ 匹配小写字母后紧跟大写字母的位置(如"uS中的uS) - 替换为:
"\1_\2→ 把中间插入下划线,保留原字母 - 点「全部替换」
- 再按
Ctrl+A全选,用菜单「编辑 → 小写化」(或Ctrl+U)把整个文档转小写 → 此时"UserName"变成"user_name"
注意:这个流程会把值里的驼峰也一并改掉(如 "value": "MyClass" 中的 MyClass)。如果值里也有驼峰且不想动,就得加更严格的上下文限制,比如用 (? 断言前面是冒号+空白,但 Notepad++ 的正则引擎(Scintilla)对 lookbehind 支持有限,实际推荐先手动删掉值部分,或用外部脚本处理。
把下划线键转为驼峰(snake_case → camelCase)
适用场景:把 "user_name" 改成 "userName"。同样分两步:
- 查找:
"([a-z])_([a-z]),替换为:"\1\u\2→\u是 Notepad++ 特有的“下一个字符大写”转义(仅在替换框生效) - 重复执行直到无替换发生(因为一个键可能有多个下划线,如
"first_name_last"需要两次)
这个 \u 写法只在 Notepad++ 有效,其他编辑器不认;而且它只作用于紧随其后的单个字符,不能写成 \u([a-z])。如果遇到 "id_" 结尾或开头下划线(如 "_private"),正则不会匹配,得单独处理。
真正麻烦的不是怎么换,而是 JSON 里混着字符串值、嵌套对象、数组——这些地方的引号内容和键名长得一模一样。没语法树解析,纯靠正则就是刀尖上跳舞。动手前务必备份,或者先导出键名列表用 Python 脚本跑一遍再贴回来。











