Ctrl+Shift+L将每个href匹配转为独立光标是最直接可控的提取方式:先正则匹配href属性,再一键多光标,最后手动删冗余;不依赖插件,全程在当前文件操作。

用 Ctrl+Shift+L 把每个 href 匹配转成独立光标
这是最直接、最可控的提取路径:先用正则精准匹配所有 href 属性(含引号),再一键转为多光标,最后手动或批量删掉前后冗余。它不依赖插件,也不生成带路径/行号的只读结果页,全程在当前文件内操作。
实操要点:
- 查找框填:
href=(["'])([^"']*)\1—— 必须带捕获组,([^"']*)是第 2 组,后续才能精准取 URL - 务必勾选
.*(正则模式)和Match case(除非确定大小写混用) - 点
Find All,所有匹配高亮;立刻按Ctrl+Shift+L(Win/Linux)或Cmd+Shift+L(macOS) - 此时每个
href="xxx"的整段都被独立光标定位,光标停在开头,方便统一操作
删掉 href= 和引号,只留纯 URL
多光标就位后,目标是把每行的 href="https://example.com" 变成 https://example.com。不能靠替换,因为引号类型(单/双)不统一,硬删容易错位;得靠方向键+剪切组合技。
标准操作流:
- 按 →(右方向键)3 次:跳过
hre,光标落在f后的=上 - 再按 → 1 次:进入引号内,光标在第一个字符前(如
"h的h前) - 按
Shift+→逐字选中整个 URL(或直接Ctrl+Shift+→选到引号前) - 按
Ctrl+X剪切,再Ctrl+V粘贴到新行或新文件
如果页面里有大量 href='xxx',上述步骤同样适用——引号类型不影响光标定位逻辑。
为什么不用 Replace All 直接填 $2?
看起来更省事,但实际容易翻车。因为 Replace All 会无差别替换所有匹配,而 HTML 里常有干扰项:比如 <!-- href="fake.com" --> 或 <script>var link = "href=real.com";</script>。这些伪链接不会被 Find All 自动过滤,但你在多光标下能一眼识别并跳过。
关键区别:
-
Find All + Ctrl+Shift+L:你掌控每一条匹配是否参与后续操作 -
Replace All:一旦正则没避开<script>块,无效链接就混进结果,还得二次清洗 - 若已折叠
<script>/<style>块(用Ctrl+Shift+P→Fold Tags),那Replace All才相对安全
提取完怎么快速去重、换行或导出?
Sublime 不自动导出,但粘贴后几步就能规整好。重点不是“怎么导”,而是“怎么让粘贴内容干净”。
推荐流程:
- 剪切完所有 URL,
Ctrl+N新建文件,Ctrl+V粘贴 —— 此时每行一个 URL - 去重:全选 →
Ctrl+Shift+P→ 输入Sort Lines→ 回车 → 再输Remove Duplicate Lines(若无此命令,装Text Pastry) - 想转逗号分隔:
Ctrl+H,查找\n,替换为,(注意空格) - 导出为 UTF-8:右下角点编码名 → 选
UTF-8→Ctrl+S保存
真正容易被忽略的是换行符一致性:大文件从不同系统复制过来可能混用 \r\n 和 \n,导致去重失败。操作前先用 Ctrl+Shift+P → Convert Line Endings → Unix (LF) 统一一下。

















