sublime text 提取特定前缀单词需用正则\b(prefix\w+)\b配合find in files:先开正则、限定where范围、匹配后复制结果,再替换路径前缀和空格,最后去重排序得纯单词列表。

Sublime Text 没有一键提取特定前缀单词的原生命令,但用 Find in Files + 正则捕获组 + 手动清理,5 步内就能拿到干净列表。
怎么写正则匹配“特定前缀”的单词?
关键不是搜前缀本身,而是用单词边界 \b 锁定完整单词,并用捕获组 () 提取目标部分。比如要提取所有以 api_ 开头的单词:
- 正则写成:
\b(api_\w+)\b——\b防止匹配到myapi_call里的api_,\w+匹配后续字母数字下划线 - 如果前缀含正则元字符(如
user-),得转义:\b(user-\w+)\b→\b(user\-\w+)\b - 想忽略大小写?在
Find in Files面板点右下角case图标关闭它(默认开启) - 别用
.*api_.*这类模糊写法——它会整行匹配,无法精准提取单个单词
为什么 Replace in Files 不能直接导出结果?
Sublime 的 Replace in Files 不支持跨文件引用捕获组(如 ),只在当前文件的 Replace 面板里可用。所以批量提取必须走 Find in Files 路线:
- 按
Ctrl+Shift+F(Win/Linux)或Cmd+Shift+F(macOS)打开搜索面板 - 勾选
Regular Expression(右下角 .* 图标亮起) - 在
Where栏限定范围,例如./src/**/*.js,避免扫整个项目卡死 - 填入正则(如
\b(api_\w+)\b),点Find—— 结果页自动列出所有匹配项,带路径和行号
怎么从搜索结果里快速得到纯单词列表?
搜索结果页本质是只读视图,复制后需两步清洗:
- 全选结果页 →
Ctrl+A→Ctrl+C→ 粘贴到新标签页 - 用
Ctrl+H替换:查找^.+?:\d+:\s*(匹配“文件名:行号: ”前缀),替换为空;再查\s+$去行尾空格 - 如果有重复项,选中全部 →
Ctrl+Shift+P→ 输入Sort Lines→ 回车去重(注意:Sort Lines 不自动去重,需先Ctrl+Shift+P→Remove Duplicate Lines) - 最终结果是每行一个单词,可直接复制进数组或 CSV
容易被忽略的三个实际限制
这些点不处理,提取结果大概率出错或漏项:
-
word_separators配置影响单词切分:默认_是断词点,api_user双击只会选中api或user;如需整词匹配,得删掉配置里的_ - 大文件多时,
Find in Files不做索引,纯实时扫描——Where范围没缩紧,操作会明显卡顿 - 混合换行符(
\r\n和\n)可能导致正则跨行失败;建议先用Ctrl+Shift+P→Convert Line Endings: Unix
真正卡住人的从来不是正则怎么写,而是没关大小写开关、Where 范围设太宽、或者复制后忘了删路径前缀——这三处对齐了,提取就稳了。











