sublime正则替换处理postman数据的核心难点是字段名含下划线/大小写混用、跨多行、json键名带引号及转义;需禁用“.matches newline”、用1替代.?、用 代替$、以"(2)_(w)"匹配并u转大写,且必须find all预览。" ↩" ↩

Sublime 正则替换处理 Postman 接口文档数据,核心难点不在语法本身,而在三处隐性约束:接口字段名含下划线或大小写混用、请求体/响应体跨多行、JSON 键名被引号包裹且存在转义。不提前对齐这些,$1 会原样输出,.*? 会卡死,^/$ 会只匹配全文首尾。
Postman 导出的 JSON 响应体中提取所有 key 名(含嵌套)
Postman 导出的响应示例常为缩进 JSON,但 Sublime 默认 . 不匹配换行符,直接写 "(w+)": 只能命中单行内的 key。更糟的是,像 "user_info": { "name": "a" } 这种结构,.*? 会贪婪吞掉整个块,无法精准停在冒号前。
- 关闭
. matches newline(右下角.*图标旁的↩必须未点亮) - 查找:
"([^" ]+)":—— 用[^" ]显式排除引号和换行,比.*?安全 - 替换:
$1,(末尾加逗号便于后续去重或转数组) - 若需保留层级(如
data.items.id),得先用{[sS]*?}提取对象块,再分步处理,Sublime 不支持递归正则
把 Postman 的 raw body(JSON)里所有 snake_case 字段批量转成 camelCase
比如把 "user_name": "x" → "userName": "x"。不能只搜 _([a-z]),否则会误改 URL 中的下划线或注释里的 __proto__;也不能依赖 ,因为 JSON 键名前后是引号, 在 Sublime 中把 " 当单词边界,根本不起作用。
- 查找:
"([^"]*)_([a-z])([^"]*)":—— 精确锚定引号内、下划线前后都是非引号字符的场景 - 替换:
"$1u$2$3":——u表示下一个字母大写(Sublime 支持该转义) - 若字段含多个下划线(如
first_name_last_name),需执行两次:第一次转firstName_last_name,第二次转firstNameLastName - 务必先
Find All确认高亮区域全是目标键名,避免误触content-type或x-request-id这类带连字符的 header 字段
清理 Postman 导出的 cURL 或 raw 请求体中的多余空格与换行
Postman 导出的 cURL 常含大量缩进和空行,直接删 ^s*$ 会破坏 JSON 结构——因为 s 匹配
,导致两行之间的换行符被吃掉,所有内容挤成一行。
- 删纯空行(不含空格/Tab):
^R$→ 替换为空(R是 Sublime 内置通用换行符,比$稳定) - 删仅含空格/Tab 的行:
^[ ]+R$→ 替换为空 - 压缩 JSON 请求体为单行(用于测试):
R→ 替换为(一个空格),再手动删多余空格;不要用s+,它会把 JSON 内部的空格也干掉 - 若导出的是
raw文本而非 JSON,先统一换行符(File → Line Endings → Unix),否则^/$在 Windows 下失效
从 Postman Collection JSON 中批量提取所有接口 URL 和 method
Postman 导出的 collection.json 是完整结构体,Find in Files(Ctrl+Shift+F)必须配合路径过滤,否则会在 node_modules 里翻出一堆干扰项。直接搜 "method": "[A-Z]+" 会漏掉换行后的写法(如 "method":
"GET")。
- 打开
Ctrl+Shift+F,Where 填**/*.json或具体路径(如collection.json) - 查找:
"method":s*"[A-Z]+",s*"url":s*{"raw":s*"([^"]+)"—— 用s*吃掉可能的空白和换行 - 替换:
【$1】 $2($1是 method,$2是 URL) - 注意:如果 URL 含转义引号(
"),得先预处理掉反斜杠,或改用"raw":s*"((?:[^"\]|\.)*?)"—— Sublime 支持基础转义匹配,但不支持(? 这类负向断言
真正卡住人的不是正则怎么写,而是 Postman 数据天然带缩进、换行、引号、转义这四层嵌套,而 Sublime 的 ^、$、.、s 每个行为都受开关和编码牵制。每次操作前点一下 Find All,看高亮是否刚好框住你要的字段——这 5 秒省下的调试时间,远超你重跑三遍替换。











