Sublime Text 不支持一键导出匹配内容为纯列表,所有提取依赖 Find All 或 Find in Files 结果整理;需用正则捕获组(如 $1)配合非贪婪量词、边界锚定,并注意 Replace in Files 不支持 $1 引用,仅当前文件 Replace 面板可用;提取后需手动去重、分行、转数组,且须控制作用域与编码。
Sublime Text 本身不提供“一键导出匹配内容为纯列表”的功能,所有提取操作都依赖 Find All 或 Find in Files 的结果整理。别指望它自动去重、转数组或生成 CSV——那是后续步骤,得自己处理。
怎么让 Find All 选中的是纯关键词,而不是整行?
关键在正则里用
捕获目标部分,并确保匹配范围最小化。如果写成
却没限制上下文,Sublime 会从
开始一直吃到行尾,
就拿不到干净的变量名。
用非贪婪量词:
比
更安全,避免跨引号吞掉后面内容
排除干扰边界:提取函数名时用
,不是
,否则可能捕获到
中的
测试先行:先在单个文件按
输入正则,看高亮是否只框住你要的部分;不行就调窄范围,比如加
或锚定空格
为什么 $1 在 Replace in Files 里不生效?
因为
(
)面板不支持捕获组引用——它只把
当字面字符串输出。这是 Sublime 的硬限制,不是你正则写错了。
仿Sublime和notepad++编辑器效果
仿Sublime和notepad++编辑器效果
下载
真正能用
的地方只有当前文件的
面板(
),且必须点开右下角的
图标
想批量提取关键词?别走 Replace in Files,改用
(
)→ 点
→ 复制结果页文本 → 粘贴后用列编辑或二次替换清理
想保留关键词并重构?先在单个文件确认
和
(填
)逻辑正确,再切到
执行无引用的批量替换
提取后怎么快速去重、分行、转数组?
复制出来的结果通常是带路径和行号的杂乱文本,比如
。直接粘贴进新文件后,得靠组合操作收尾。
去重:粘贴后全选 →
→ 输入
→ 回车 → 再执行一次
(需提前安装 Package Control 的相应插件,原生不支持)
分行:若替换时用了
,但末尾多空行,可用
(开启正则)替换为空来清理
转数组:手动补
开头、
结尾,再对换行符做
→
替换;注意首尾引号和逗号位置,别漏掉第一个或最后一个
最易被忽略的是作用域控制:默认正则对整个文件生效,但如果你只选中了一段 JSON,又忘了勾选
提示,那替换就会跑出范围。还有编码问题——粘贴进来的文本带 BOM 或零宽空格,正则直接失效,得先
强制重载。
()var\s+(\w+)\s*=var$1console\.log\(\s*["']([^"']*)["']console\.log\(\s*["'](.*)["']function\s+(\w+)\s*\(\)function\s+(\w+)functionNameNameCtrl+F\bReplace in FilesCtrl+Shift+H$1ReplaceCtrl+H.*Find in FilesCtrl+Shift+FFindFindReplace$1Replace in Filesmain.js:42: id: "user_id"Ctrl+Shift+PSort LinesRemove Duplicate Lines$1\n^$\n[""]\n", "In SelectionFile → Reopen with Encoding → UTF-8