Sublime编写正则表达式替换指定URL_快速完成全站静态资源CDN域名的切换

酷雪姑娘_7169

酷雪姑娘_7169

2026-06-22

296人浏览

原创

sublime text批量替换url域名需手动编写正则覆盖所有写法:必须启用正则模式(.*按钮),分三类匹配https?://、//及纯域名上下文,并用捕获组保留路径结构,替换后须人工核验css/html/js中各类url残留。

sublime编写正则表达式替换指定url_快速完成全站静态资源cdn域名的切换

Sublime Text 里用正则批量替换 URL 域名,本质是字符串模式匹配,不是“智能识别链接”

Sublime Text 的查找替换不解析 HTML 或 CSS 语法,它只按文本匹配。所以 https://old.example.com/static/ 和 url("https://old.example.com/img/logo.png") 都得靠正则自己“抓出来”,不能指望它自动识别“这是个资源地址”。你写的正则必须覆盖所有实际出现的写法:带协议、不带协议、引号包裹、括号包裹、路径结尾有无斜杠等。

常见错误是只写 https?://old\.example\.com,结果漏掉 //old.example.com(协议相对 URL)或 old.example.com/static(纯域名+路径混写在 JS 字符串里)。

  • 务必开启 正则模式(.* 按钮)和全文件匹配(Alt+Enter 或勾选 “In Selection” 外的范围)
  • 测试时先用 Find All 看命中的行数,确认没漏没多
  • 如果项目含 Vue/JSX 模板,注意 v-bind:src="xxx" 里的变量不会被匹配——那是运行时拼接,文本里根本没完整 URL

匹配常见静态资源 URL 的正则写法(含引号、括号、协议可选)

最稳妥的写法是分三类覆盖:https?://、//、以及未加协议但明显属于 CDN 路径的纯域名片段(如 old.example.com/css/)。推荐这个组合:

https?://old\.example\.com|//old\.example\.com|(?<p>说明:</p>
  • https?://old\.example\.com 匹配 http:// 和 https:// 开头
  • //old\.example\.com 匹配协议相对 URL(常见于 HTML src 和 CSS url())
  • (? 是正向先行断言,确保前面是引号、左括号、等号或空格;<code>(?=[\'\"/ )\n;]) 是正向后行断言,确保后面是引号、斜杠、右括号、换行、分号等——避免把 myold.example.com 也替换了
  • 点号 . 必须转义为 \.,否则匹配任意字符

替换时保留路径、只换域名,用捕获组避免硬编码路径

直接写 https://cdn.newdomain.com 容易出错,因为原始 URL 结构不统一。更安全的做法是用捕获组提取“协议+域名”部分,再整体替换。例如:

Sublime Text Build Linux版
Sublime Text Build Linux版

Sublime Text Linux x86-64 deb 安装包。官方也提供 rpm、tar.xz 和软件源安装方式。

下载

查找:

(https?://|//)old\.example\.com(/[^\'\"\s)]*)?

替换:\1cdn.newdomain.com\2

说明:

  • (https?://|//) 捕获协议或双斜杠,存为 \1
  • (/[^\'\"\s)]*)? 可选地捕获第一个斜杠及后续非引号/空格/右括号的内容(即路径),存为 \2
  • 这样 https://old.example.com/js/app.js → https://cdn.newdomain.com/js/app.js,//old.example.com/css/style.css → //cdn.newdomain.com/css/style.css,old.example.com/images/(没匹配上,需另加规则)
  • 如果还有纯域名无协议无路径的情况(如 old.example.com 单独成词),得额外加一条规则单独处理

替换后必须验证,尤其注意 CSS url()、HTML data-src、JS 字符串拼接

正则替换完别急着提交。CDN 切换失败最常见的不是域名没换,而是路径结构变了或缓存没清:

  • CSS 里 url("old.example.com/a.png") 如果引号类型不一致(单引号/双引号/无引号),你的正则可能漏掉一种;建议先全局搜 url( 再人工核对几处
  • HTML 中 data-src、data-background 等自定义属性里的 URL 不会被常规“图片/脚本”逻辑覆盖,得单独查
  • JS 文件里如果有 const cdn = "old.example.com"; fetch(cdn + "/api") 这种拼接,正则根本找不到——这种必须改源码
  • 替换后打开浏览器开发者工具,过滤 Network 面板的 old.example.com,看是否还有残留请求;同时检查控制台是否有 404

真正麻烦的从来不是怎么写正则,而是怎么确认“所有地方都换干净了”。漏一个 background: url(//old.example.com/sprite.png),就可能导致某页图标全挂。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

2023.06.20

4136

8

正则表达式不包含
正则表达式不包含

正则表达式,又称规则表达式,,是一种文本模式,包括普通字符和特殊字符,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,通常被用来检索、替换那些符合某个模式的文本。php中文网给大家带来了有关正则表达式的相关教程以及文章,希望对大家能有所帮助。

2023.07.05

2661

4

java正则表达式语法
java正则表达式语法

java正则表达式语法是一种模式匹配工具,它非常有用,可以在处理文本和字符串时快速地查找、替换、验证和提取特定的模式和数据。本专题提供java正则表达式语法的相关文章、下载和专题,供大家免费下载体验。

2023.07.05

7282

9

java正则表达式匹配字符串
java正则表达式匹配字符串

在Java中,我们可以使用正则表达式来匹配字符串。本专题为大家带来java正则表达式匹配字符串的相关内容,帮助大家解决问题。

2023.08.11

792

5

正则表达式空格
正则表达式空格

正则表达式空格可以用“\s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。本专题为大家提供正则表达式相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

500

5

Python爬虫获取数据的方法
Python爬虫获取数据的方法

Python爬虫可以通过请求库发送HTTP请求、解析库解析HTML、正则表达式提取数据,或使用数据抓取框架来获取数据。更多关于Python爬虫相关知识。详情阅读本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.13

673

12

正则表达式空格如何表示
正则表达式空格如何表示

正则表达式空格可以用“\s”来表示,它是一个特殊的元字符,用于匹配任意空白字符,包括空格、制表符、换行符等。想了解更多正则表达式空格怎么表示的内容,可以访问下面的文章。

2023.11.17

386

3

正则表达式中如何匹配数字
正则表达式中如何匹配数字

正则表达式中可以通过匹配单个数字、匹配多个数字、匹配固定长度的数字、匹配整数和小数、匹配负数和匹配科学计数法表示的数字的方法匹配数字。更多关于正则表达式的相关知识详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.12.06

719

7

php正则表达式有哪些
php正则表达式有哪些

php正则表达式有"/pattern/"、"^"、"$"、"."、"[]"、"[^]"、"[a-z]"、"[A-Z]"、"[0-9]"、"\d"、"\D"、"\w"、"\W"、&a

2024.02.23

312

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程