应使用单词边界确保精准匹配,如\bexample\.com\b,避免误匹配myexample.com等;url中可配合(?

替换前先确认域名是否被正确捕获
Sublime 的正则替换依赖 Find 面板能否准确匹配目标域名,常见失败是把 example.com 错误匹配成 myexample.com 或 example.com.cn。必须用单词边界或前后锚点限制范围。
- 推荐模式:
\bexample\.com\b(\b匹配单词边界,\.转义点号) - 若域名出现在 URL 中(如
https://example.com/path),用(? 更稳妥 - 避免写
example.com(没转义点号,会匹配exampleXcom)或example\.com却不加边界(可能连带匹配sub.example.com)
批量替换时保留协议和路径结构
直接全文替换成新域名会丢掉 http://、https:// 或路径部分,应使用捕获组复用原上下文。
- 查找:
(https?://)example\.com(/[^"\s]*)? - 替换:
$1newdomain.com$2 - 说明:
$1是协议,$2是可选的路径(含开头的/),[^"\s]*确保不跨引号或换行截断 - 注意:Windows 下换行符为
\r\n,若路径含换行,需在Find面板勾选. matches newline
处理 HTML 属性值中的域名要防误伤
HTML 中域名常出现在 href、src、data-url 等属性里,盲目替换会污染其他字符串(比如注释、JS 字符串、CSS URL)。
- 安全写法(仅匹配双引号内的 URL):
href="[^"]*?example\.com[^"]*?"→ 替换为href="https://newdomain.com$2"(需配合捕获组重写整个属性值) - 更精确做法:先用
Find in Files(Ctrl+Shift+F)限定文件类型,如*.html,*.htm,再用href="([^"]*example\.com[^"]*)"捕获值,替换为href="$1".replace("example.com", "newdomain.com")—— 但 Sublime 不支持 JS 表达式替换,所以实际得拆两步:先提取所有匹配行,再用外部脚本或手动校验 - 容易踩的坑:
src="assets/example.com/logo.png"这类非根域名路径不能直接替换,否则变成src="assets/newdomain.com/logo.png",应排除含斜杠的子路径:src="[^"/]*example\.com[^"/]*"
替换后务必验证相对路径和协议相对 URL
像 //example.com/asset.js(协议相对 URL)或 //cdn.example.com 这类写法不会被 http:// 开头的正则捕获,漏掉会导致资源 404。
- 单独补查:
//example\.com\b和//cdn\.example\.com\b - 如果新域名强制走 HTTPS,替换
//example.com为https://newdomain.com,而非//newdomain.com - 检查 CSS 中的
url(//example.com/img.jpg):需开启. matches newline并用url\(\s*//example\.com[^\)]*\),否则括号跨行会失效
最麻烦的是模板字符串或 JS 拼接的域名(如 host + '.example.com'),Sublime 正则无法静态分析逻辑,这类必须人工核对。











