提取html真实url应聚焦href和src属性,用正则href\s*=\s*["']([^"']+)["']|src\s*=\s*["']([^"']+)["']捕获相对与绝对路径,替换为$1$2后清理空行和重复行。

提取 HTML 中真实 URL:只盯 href 和 src 属性
网页里能跳转的链接,90% 都藏在 href 和 src 属性里,不是满屏搜 http 就能搞定的。盲目匹配 https?://[^\s]+ 会漏掉 /api/v1、./img/logo.png 这类相对路径,还会误抓 JS 字符串或注释里的假链接。
正确做法是用这个正则:href\s*=\s*["']([^"']+)["']|src\s*=\s*["']([^"']+)["']
- 它有两个捕获组:
$1存href值,$2存src值 - 替换时填
$1$2,就能把两类链接都导出成行 - 务必先点菜单栏「编码」→「转为 UTF-8 编码」,否则中文路径或全角引号会匹配失败
- 替换完用
^\s*$删空行,再「编辑」→「行操作」→「删除重复行」
从 JSON 提取字段值:比如所有 memberId
Notepad++ 不解析 JSON 结构,但它能靠模式匹配快速捞出键值对里的值。只要字段名固定、值不嵌套,就非常可靠。
例如提取 "memberId":"12345" 中的数字,用:"memberId":"(\d+)"
- 括号
(\d+)捕获纯数字,避免把"memberId": null或对象类型也混进来 - 如果值带字母或短横线(如
"orderId":"ORD-2026-789"),改用"orderId":"([^"]*)" - 注意:JSON 中换行或缩进不影响匹配,但若值本身含双引号(如
"name":"He said \"Hi\""),原生正则无法处理,得人工筛
按列提取简单 CSV:只适用于无引号、无逗号的纯文本
Notepad++ 的 CSV 提取本质是“数逗号”,不是真解析。一旦字段含双引号、逗号或换行,结果立刻错位——这不是你正则写得不对,是工具边界问题。
提取第 3 列,用:^([^,]*,){2}([^,]*),替换为 $2
-
([^,]*,){2}跳过前两列(含它们后面的逗号) -
([^,]*)捕获第 3 列内容,到下一个逗号或行尾为止 - 字段数不足的行(如只有 2 列)自动跳过,这是安全机制,不是 bug
- 要提第 1、4、5 列?就得手写占位:
^([^,]*),[^,]*,[^,]*,([^,]*),([^,]*),替换填$1,$2,$3
过滤并保留特定日志行:比如只留含 NEXT WAKEUP 的行
想从千行日志里只留下几条关键记录?别手动滚屏复制。Notepad++ 可以反向操作:把不需要的行全删掉。
用这个替换正则:^(?!.*NEXT WAKEUP).*$\r?\n?,替换为空
-
(?!.*NEXT WAKEUP)是负向先行断言,确保该行不包含目标字符串 - Windows 和 Linux 换行符都覆盖(
\r?\n?),避免漏删 - 如果要保留多关键词(如
NEXT WAKEUP或CmdName),改成(?!.*(NEXT WAKEUP|CmdName)) - 执行前建议先点「查找全部」确认匹配范围,防止误删











