匹配重复URL需用^s(https?://1+)s$提取单行URL,再通过查找全部、复制、排序及正则去重分步实现;高亮重复项可用^(\s*https?://[^s ]+\s*)$(?=s*)。s ↩

匹配重复 URL 的核心正则模式
Sublime Text 本身不支持“去重”原生操作,但可以靠正则先 ^s*(https?://[^s]+)s*$ 提取所有 URL 行,再用「查找全部 → 复制匹配 → 粘贴到新窗口 → 排序 + 正则删重复」分步完成。关键不是一步到位,而是把「识别重复」和「保留唯一」拆开做。
注意:URL 中可能含 #、?、&,所以不能简单用 ^https?://.*$ —— 它会跨行或吞掉空格后内容。稳妥写法是:^s*(https?://[^s
]+)s*$,其中 [^s
]+ 确保只捕获单行内 URL,避免误吞换行或缩进。
快速筛选并高亮所有重复项(非删除)
想先看哪些 URL 出现了多次?用 Sublime 的「Find All」配合反向引用:
^(s*https?://[^s
]+s*)$(? ❌ 不生效 —— Sublime 的正则引擎(PCRE 变种)不支持跨行回溯引用,这个写法会失败。
正确做法是两步走:
- 先用
^s*(https?://[^s ]+)s*$查找所有 URL,按 Ctrl+Shift+G(Windows/Linux)或 Cmd+Shift+G(macOS)选中全部匹配项 - 复制(Ctrl+C),新建窗口粘贴,执行菜单 Sort Lines(F9),再运行正则
^(https?://[^s ]+)s*$ ^s*$并勾选 Regular Expression 和 Highlight matches only - 这时每对相邻重复 URL 都会被高亮,可人工确认或批量删第二行
真正去重:排序 + 删除连续重复行
Sublime 没有「按内容去重」命令,但 Sort Lines 后的连续重复行,可用正则精准干掉:
- 先确保每行只含一个 URL(无空格/注释),否则先用
s*(https?://[^s ]+)s*.*替换为$1 - 执行 Sort Lines(F9)
- 查找:
^(https?://[^s ]+)s*$ ^s*$,替换为:$1,勾选 Regular Expression 和 Replace All - 重复执行该替换,直到提示「0 occurrences found」—— 因为一次只能删相邻对,多重复需多轮
如果 URL 带末尾斜杠差异(如 https://a.com/ vs https://a.com),得先统一标准化,否则不会被识别为重复。
处理带参数或大小写的“逻辑重复”
真实场景中,https://example.com/?id=1 和 https://EXAMPLE.COM/?ID=1 应算重复,但默认正则不忽略大小写或 query 参数顺序。Sublime 无法自动归一化,必须预处理:
- 用正则批量小写 host:
https?://([^s/]+)→https://L$1E(L和E是 Sublime 支持的大小写转换元字符) - 删掉所有
#.*锚点(#.*$→ 空) - 对 query 参数排序?做不到 —— Sublime 正则无函数式处理能力,此时建议导出后用 Python/JS 脚本处理
- 若只是粗略去重,加 Match Case 取消勾选,让查找忽略大小写,但替换仍需手动校验
别指望一条正则解决所有语义重复;URL 去重的边界在「字符串相等」,超出这个范围就得换工具。

















