Notepad++提取JSON键值对需用正则表达式而非格式化插件,推荐“id”s:s"(1)"提取字符串值、“id”s:s*(d+)提取数字值,并确保JSON已格式化、编码为UTF-8无BOM,勾选Match case和Regular expression;复杂场景建议用NppExec调Python解析。" ↩

Notepad++ 里提取 JSON 键值对,别用“格式化插件”
JSON Viewer 和 JSTool 都不提供提取功能——它们只负责格式化或校验,不会帮你捞出 "id"、"name" 这类字段的值。想批量提取,得靠正则 + 手动筛选,或者走外部命令。插件管理器里搜“extract”“json parser”之类关键词,基本都是假货或已失效。
用正则表达式精准匹配键值对(免插件、通用)
这是最稳、最快、也最可控的方式,尤其适合从日志、API 响应片段中抠出固定字段。关键不是写多复杂的正则,而是避开常见陷阱:
- 必须确保 JSON 已格式化(缩进清晰),否则
"id":s*"(w+)"可能跨行匹配失败 - 匹配字符串值时,用
"id"s*:s*"([^"]*)",而不是"id":"(.*)"——后者会贪婪匹配到行尾最后一个引号,中间含转义符(如"msg": "a"b")就崩 - 匹配数字 ID?用
"id"s*:s*(d+),注意去掉引号;如果可能为字符串数字(如"123"),就回到上一条带引号的写法 - 搜索时务必勾选
Match case和Regular expression,否则"ID"或"Id"会被漏掉
用 NppExec 调 Python 提取(适合复杂逻辑)
当要提取嵌套字段(如 data.items[0].user.id)、去重、或导出为 CSV 时,正则很快力不从心。这时直接调本地 Python 更可靠:
用于端到端视频本地化流程的轻量编排器,路由至四个专注子技能——/wjs-transcribing-audio、/wjs-translating-subtitles...
- 先确认系统能运行
python -c "import json; print(json.loads('{"a":1}'))" - 在 NppExec 中执行:
python -c "import json,sys; j=json.load(sys.stdin); [print(v['id']) for v in j.get('users', [])]" < "$(FULL_CURRENT_PATH)" - 注意:Python 脚本里字段名要硬编码,
v['id']如果某条数据没有id键,会报KeyError;加.get('id', '')可防崩 - 输出结果直接显示在 NppExec 控制台,复制即可;如需保存,改用重定向:
... > "$(CURRENT_DIRECTORY)ids.txt"
中文字段名、带空格或特殊字符的键怎么处理
像 "用户ID"、"order-id"、"is_active" 这类键,正则里不能简单写 "用户ID": —— Notepad++ 默认正则引擎不支持 Unicode 字符类,容易因编码识别错乱导致匹配失败:
- 第一步:菜单栏 → 编码 → 转为 UTF-8 无 BOM(避免 BOM 干扰正则锚点)
- 第二步:正则写成
"用户ID"s*:s*"([^"]*)",不要用u4F60u6217这种 Unicode 转义——Notepad++ 不认 - 第三步:若字段名含双引号或反斜杠(极少见但存在),正则必须先转义,比如匹配
"key"name",得写"key\"name"s*:
真正麻烦的不是语法,是 JSON 本身是否合法——只要有一个 undefined 或尾逗号,Python 解析就挂,正则却照常跑出错误结果。所以提取前,先用 JSON Viewer 点一下 Format JSON,报错就说明数据源有问题,别急着写正则。

















