因sublime正则默认不跨行,^/$锚定物理行首尾,导致在json、js模板等多行场景下匹配错位或截断;应启用(?s)单行模式和(?m)多行模式,并用分隔符替代^/$。

为什么 ^.*?\/api\/[^\s]+ 常常匹配不全或错位
直接写 ^.*?\/api\/[^\s]+ 看似能抓到以 /api/ 开头的路径,但实际在 Sublime 中经常漏掉换行前的引号、截断参数、或跨行匹配失败——因为 Sublime 的正则引擎默认不跨行,且 ^ 和 $ 锚定的是**物理行首尾**,不是逻辑行。如果你的接口写在 JSON 字符串里、JS 模板字面量中,或者被括号/逗号换行包裹,这个表达式基本失效。
实操建议:
- 先关闭
Match case(除非明确区分大小写),勾选Regex和Wrap around - 用
(?s)启用单行模式,让.匹配换行符;再用(?m)启用多行模式,让^/$匹配每行起止 - 避免依赖
^,改用单词边界或前后分隔符,比如(?
提取 Vue/React 项目中的 axios 或 fetch 接口路径
这类代码里路径常嵌在字符串、变量拼接或模板字面量中,纯靠 /api/ 前缀容易误伤注释或非请求位置。
推荐匹配模式:(?:axios\.(?:get|post|put|delete)|fetch)\s*\(\s*["'`]([^"']+?)["'`]
说明:
-
axios\.get等必须转义点号,fetch后跟括号,避免匹配到变量名fetchData -
["'`]同时覆盖单引号、双引号、反引号,适配 ES6 模板字符串 - 捕获组
([^"']+?)保证只取引号内内容,不贪婪吞掉后续参数 - 如果路径含变量拼接(如
`/api/users/${id}`),需额外处理:先用`\/api\/[^`]+`提取整个模板串,再人工或二次正则剥离插值部分
从 Swagger/OpenAPI JSON 中提取 paths 下的真实路径
Swagger 文件里 paths 是对象结构,键就是路径,但 Sublime 默认正则无法解析嵌套 JSON。不能指望一次匹配出所有,得借助结构特征。
有效策略是两步走:
- 第一步定位:搜索
"\/[a-z][^"]*":\s*{,匹配形如"/users": {的键行(要求开头是/+ 小写字母,排除"/"或"/v1/"这类无效片段) - 第二步提取:在匹配结果上右键 →
Selection → Expand Selection to Line,再用列编辑或替换^"\(.*?\)":.*$→$1 - 注意:如果 JSON 被压缩成一行,先用在线工具或
Ctrl+Shift+P → Pretty JSON插件格式化,否则正则几乎不可靠
导出结果后怎么去重并过滤测试路径
Sublime 本身不提供去重功能,但可借力快捷操作快速整理:
- 选中所有匹配结果 →
Ctrl+Shift+P→ 输入Sort Lines→ 回车(自动去重需配合Remove Duplicate Lines插件,或手动替换^(.*$\n)\1+→$1) - 过滤测试路径:搜索
\/(test|mock|dev|staging)\/api\/并删除,或反向保留\/(prod|live|api)\/(注意生产环境路径未必带prod,更稳妥的是排除已知测试前缀) - 导出时用
Ctrl+Shift+P → Copy as Plain Text,粘贴到 Excel 或 VS Code 中进一步清洗——Sublime 的列编辑(Alt+鼠标拖选)对齐路径参数特别有用
真正麻烦的不是正则写法,而是接口路径常混在注释、Mock 数据、废弃代码块里;人工核验比正则更耗时。建议提取后立刻用 curl -I 或 Postman 批量探活,比肉眼检查可靠得多。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











