用 Find All 提取纯 URL 需用正则 href=(["'])(1)\1,其中 (1) 为捕获组对应 $2,启用正则后 Find All 再 Ctrl+C 即得每行一个 URL;整行匹配正则无法精准提取链接本身,易混入伪链接和冗余内容。"' ↩

怎么用 Find All 提取所有 href 值(不带标签)
直接提取 URL 字符串,而不是整行或整个 href="..." 标签,关键在捕获组。正则写成 href=(["'])([^"']*)\1,其中 ([^"']*) 是你要的内容,对应替换时的 $2。
操作流程:按 Ctrl+F(Windows/Linux)或 Cmd+F(macOS)→ 点右上角 .* 启用正则 → 输入该正则 → 点 Find All → 所有匹配位置光标就位 → 直接 Ctrl+C 复制,粘贴出来就是纯 URL 列表(每项一行)。
- 别漏掉引号配对逻辑:
\1确保开头单/双引号和结尾一致,否则会跨标签截断 - 如果复制结果末尾多出引号,说明正则没捕获好,检查是否误用了
.*?或漏了\1 -
src、data-url等属性同理,把href替换即可,但分组编号会变(URL 在$2还是$3得看括号数)
为什么 ^.*href=.*$ 不能直接拿来提取链接
这个正则只能选中“含 href 的整行”,但网页里 href 几乎从不在行首,且常和 class、id、onclick 混在同一行。用它 Find All 后再 Ctrl+L,结果是整行被复制,不是链接本身。
更麻烦的是:它会把 <!-- href="xxx" --> 或 <script>href="yyy"</script> 这类伪链接也拉进来——Sublime 不解析 HTML 结构,只做字符串匹配。
- 真实有效链接往往藏在单行内多个属性中,必须靠捕获组精准定位值部分
- 若坚持用整行匹配,务必先手动折叠
<script></script>和<style></style>块(Ctrl+Shift+P→ 输入Fold Tags) - 注释里的伪链接无法靠正则过滤干净,建议先用
<!--[\s\S]*?-->查找并跳过
Ctrl+Shift+L 和 Find All 的本质区别在哪
Ctrl+Shift+L 是“多光标定位”,它把每个匹配关键词的位置变成一个光标,后续操作(如 Home + Shift+End)才扩展成整行;而 Find All 是“批量高亮匹配片段”,默认只选中正则命中的那部分文本。
想快速提取链接时,Find All 配合捕获组更直接;但如果你已经用 Ctrl+F 找到某个关键词(比如 https://),又不想写复杂正则,Ctrl+Shift+L 就是轻量替代方案。
-
Ctrl+Shift+L对大文件(>10MB)容易卡顿,此时必须切回Find All+ 正则 - 它对未命中关键词静默失败,不会提示,容易误以为操作成功
- 复制后若带空行,记得用
Ctrl+Shift+P→Remove Empty Lines清理
导出结果时最容易被忽略的两个细节
一是复制方式:Ctrl+C 在多光标/多匹配状态下行为不稳定,有时只复制最后一个;必须用 Ctrl+Shift+P → 输入 Copy Selected Lines(注意不是 Copy Lines),这个命令专为多行选中设计,保留换行和原始缩进。
二是粘贴目标:别直接粘到 Excel 或微信里——前者可能自动合并单元格,后者会吞掉换行。新建一个 Sublime 标签页再粘贴,最可控。
- 如果粘贴后发现 URL 被截断或错位,大概率是源 HTML 用了混合缩进(Tab + 空格),这不是提取问题,是原始格式缺陷
- 导出前建议加一轮过滤:查找
^(?!https?://|#|javascript:|mailto:),删掉无效协议开头的行


















