应使用转义正则]+))匹配markdown图片、[(.*?)](([^)]+))匹配链接,需勾选正则模式、预先折叠代码块,避免贪婪匹配和注释干扰。

怎么用正则匹配 Markdown 图片和链接文本
Sublime Text 不解析 Markdown 语法,所有操作都是纯文本层面的。匹配  或 [text](url) 必须靠正则,且得区分结构、避免误吞注释或代码块。
常见错误是直接搜 ![]()——它根本不会动,因为括号和方括号在正则里有特殊含义,不转义就当字面量处理;更糟的是写 ,会贪婪跨行匹配,把整个段落吞掉。
- 安全匹配图片链接:
![([^]]*)](([^)]+))(捕获 alt 文本和 URL) - 安全匹配普通链接:
[([^]]+)](([^)]+)) - 若只想改 URL 部分(比如加 CDN 前缀),查找时只高亮括号内内容:用
![[^]]*](([^)]+)),再按Ctrl+Shift+L光标跳进第一个捕获组 - 注意:Markdown 代码块 ``` 里的
也会被扫到,建议先折叠代码块(Ctrl+Shift+P→Fold Tags)再操作
批量给所有 Markdown 链接加 HTTPS 前缀
典型场景是把 src="/img/logo.png" 或  升级为带 CDN 的绝对路径。不能硬塞 https://cdn.example.com/,否则可能叠成 https://cdn.example.com/https://...。
实操关键在于「条件替换」:只对相对路径或协议缺失的 URL 加前缀,跳过已有 http:// 或 https:// 的。
使用 markitdown 将文档和文件转换为 Markdown。适用于转换 PDF、Word (.docx)、PowerPoint (.pptx)、Excel (.xlsx, .xls)、HTML、CSV、JSON、XML 等格式。
- 查找(启用正则):
![[^]]*]((?!https?://)([^)]+))——(?!https?://)是负向先行断言,确保括号内不以协议开头 - 替换:
(前提是查找用了两个捕获组) - 如果只想处理
src="..."属性(如 HTML 片段混在 Markdown 中),改用:src="([^"]+)"+ 负向断言:src="(?!https?://)([^"]+)" - Windows 路径中的反斜杠要双写:
C:\img\logo.png,否则i会被当成转义序列
为什么 Replace All 后部分文件没变
不是正则写错了,大概率是路径过滤或文件状态问题。Sublime 的 Replace in Files 默认不扫描所有文件,尤其容易漏掉三类:
-
Where框填了./docs/**/*.md,但实际文件在content/下——路径大小写敏感,./Docs≠./docs - 文件编码不是 UTF-8(右下角显示
Western (ISO 8859-1)等),Sublime 默认跳过非 UTF-8 文件参与替换 - 目标文件是只读(右下角显示
RO),或被Where显式排除,比如写了., -node_modules却忘了加逗号,变成.-node_modules(非法语法,整条过滤失效) - 文件未加入当前项目:用
File → Open Folder…加载根目录,而不是只打开单个.md文件——否则Ctrl+Shift+F面板灰显或Where只显示Open Files
替换后必须手动 Save All,否则全丢
点完 Replace All,所有被改的文件标签页出现星号 *,这是 Sublime 在提醒:改动还在内存缓存里,没写入磁盘。
关掉窗口、崩溃、甚至切到终端执行 git status 都看不到变更——因为没落盘。
- 保存全部:Windows/Linux 按
Ctrl+K松开,再按Ctrl+B;macOS 是Cmd+K→Cmd+B - 别依赖自动保存插件——Sublime 原生命令不触发任何保存钩子,插件无法监听
Replace All事件 - 大型文档(>5MB)可能被跳过,右下角状态栏看是否提示
Large file skipped;此时需拆分处理或改用命令行sed
最常被忽略的一点:正则开关 .* 在 Find in Files 面板里是独立状态,哪怕你在 Ctrl+H 里点过,进 Ctrl+Shift+F 后还得再点一次——图标没变蓝,写再多 d+ 和 ^# 都只是普通字符串。










