sublime text 中应使用 href=(["'])(1*)\1 正则提取 href 链接,它通过引用匹配同类型引号、限制引号内字符,避免跨标签和嵌套问题;替换用 $2 可得纯净 url,但需先剔除 script/style 块和注释,并二次过滤非有效链接。"' ↩

直接用正则在 HTML 编辑器里搜 href 属性最省事,但得避开 script、注释和无效值,否则提取结果一堆 javascript:void(0) 或带引号的残缺 URL。
Sublime Text 里怎么写正则匹配所有 href 链接
别用 href="(.*?)"——它遇到换行、嵌套引号或注释就漏匹配或跨标签。真正能落地的是这个模式:href=(["'])([^"']*)\1。
-
(["'])捕获开头单/双引号,\1强制结尾用同一种引号闭合,防误匹配 -
([^"']*)只匹配引号内非引号字符,比.*?更安全 - 替换时填
$2,就能只留下 URL 本身,不带引号和属性名 - 务必勾选
.*(正则模式)和Match case(通常可不勾,除非大小写敏感)
为什么提取结果里总冒出 href="#" 或 href="javascript:..."
因为正则不区分上下文,它只认文本模式。这些是合法 HTML,但不是你要的“可访问链接”。
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
- 先手动折叠或删掉
<script></script>和<style></style>块(Ctrl+Shift+P → 输入Fold Tags) - 用
<!--[\s\S]*?-->先全选注释块,按Esc跳过不替换 - 替换完再跑一轮过滤:查找
^(?!https?://|#|javascript:|mailto:).+,把非外链行删掉
想一并提取 src、data-url 等其他链接属性怎么办
结构一样,改属性名就行,但分组编号会变,$2 不再是 URL。
- 单独提
src:用src=(["'])([^"']*)\1,替换仍用$2 - 一次提多个:用
(href|src|data-url)=(["'])([^"']*)\2,URL 在$3,注意别错用成$2 -
srcset是逗号分隔列表,不能直接套用;得先用srcset=["']([^"']*)["']提整段,再用字符串拆分处理
真正麻烦的不是写正则,而是 HTML 本身不规范——比如没闭合的引号、属性值换行、自定义属性混用。一旦发现提取结果错位或截断,优先检查源码是否被编辑器自动格式化过,或者干脆先用浏览器“查看页面源代码”另存为原始文件再处理。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










