notepad++可通过ctrl+f正则匹配并提取href/src链接:先用正则href\s*=\s*["']([^"']+)["']|src\s*=\s*["']([^"']+)["']高亮,再替换为$1$2使url独占一行,最后ctrl+a全选;需注意utf-8编码及空行清理。

Ctrl+F 用正则匹配所有 href/src 链接
Notepad++ 没有“一键全选链接”的菜单项,但能靠 Ctrl+F + 正则快速高亮全部链接属性值。关键不是搜 http,而是定位 HTML 中真实被使用的链接位置——集中在 href 和 src 属性里。
操作步骤:
- 按
Ctrl+F打开查找对话框,切换到「查找」标签页 - 勾选「匹配正则表达式」
- 在「查找内容」中输入:
href\s*=\s*["']([^"']+)["']|src\s*=\s*["']([^"']+)["'] - 点击「全部查找」或「查找全部」——所有匹配的 URL 会被高亮(注意:只高亮属性值部分,不包括
href=等前缀)
这个正则会捕获两组:$1 是 href 的值,$2 是 src 的值。它不匹配 data-src、:href 或模板语法,也不处理相对路径。
高亮后怎么真正「全选」这些链接文本?
高亮 ≠ 选中。Notepad++ 不支持直接「选中所有高亮结果」,必须转为可操作文本块。最稳的方式是先替换为纯链接行,再全选:
- 保持上面的正则不变,切到「替换」标签页
- 「替换为」填:
$1$2(把两组捕获内容拼成一行) - 点「全部替换」——原 HTML 行被清空,只剩 URL 单独成行
- 此时按
Ctrl+A就能真正全选所有提取出的链接
注意:如果页面含大量非链接内容,替换后会出现空行,需额外执行 Ctrl+H → 查找 ^\s*$(空行正则),替换为空,再删重复行。
为什么不能直接 Ctrl+A 选中所有链接?
HTML 文件里链接是嵌在标签中的,比如 @#@#@#@#@#@#@#@#@#@0。整行选中会带标签、文字、空格等无关内容;而正则匹配只锚定引号内的 URL 字符串,但 Notepad++ 不提供「选中所有匹配项」的快捷键(不像 VS Code 的 Ctrl+Shift+L)。
常见误操作:
- 用
Ctrl+F搜http—— 会漏掉//cdn.example.com、/api/v1等协议省略或相对路径 - 勾选「匹配整个单词」——导致
href="url"中的url被截断,只匹配部分 - 没切换到正则模式,把
.当通配符用 —— 实际匹配的是字面量点号,不是任意字符
提取后导出链接要注意编码和换行
提取出的链接列表若含中文路径、emoji 或特殊符号,复制粘贴时容易乱码,根源常是编码不一致:
- 确保源文件编码为
UTF-8(菜单栏「编码 → 转为 UTF-8 编码」) - 替换过程中若混用
GBK文件,$1$2可能输出乱码,且无法恢复 - 导出到新文件时,新建文档后先设编码为
UTF-8,再Ctrl+V粘贴,避免自动转为 ANSI
大项目里别漏过滤器:如果批量处理整个 src/ 目录,记得在 Ctrl+Shift+F 里用 *.html;*.htm 限定范围,否则可能扫进压缩包或构建产物里。











