You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中生成匹配指定Blob URL格式的正则表达式?

JavaScript 适配的指定格式Blob URL匹配正则

正则规则说明

待匹配URL固定结构为 https://<任意内容>.blob.core.windows.net/<任意内容>?<任意内容>,三个标记为<任意内容>的可变段允许包含特殊字符,除可变段外其余内容为固定静态值。


可直接使用的正则代码

1. 整串校验场景(验证输入完全符合格式)

适合表单校验、格式合法性判断场景,会严格匹配整个字符串,不允许前后有多余内容:

// 基础版:.不匹配换行符,覆盖99%常规URL场景
const blobUrlValidateRegex = /^https:\/\/.+?\.blob\.core\.windows\.net\/.+?\?.+$/;

// 极端兼容版:加s修饰符,允许可变段包含换行符
const blobUrlValidateRegexWithLineBreak = /^https:\/\/.+?\.blob\.core\.windows\.net\/.+?\?.+$/s;

正则分段逻辑:

  • ^:锚定字符串开头,避免URL前带多余前缀
  • https:\/\/:匹配固定的HTTPS协议头,正则字面量中/需转义
  • .+?:非贪婪匹配第一个可变段(存储账户名位置),至少1个任意字符,不会吞掉后面的固定域名
  • \.blob\.core\.windows\.net\/:匹配固定域名后缀和路径起始斜杠,.是正则元字符,匹配字面量点时必须转义
  • .+?:非贪婪匹配第二个可变段(Blob路径段),匹配到第一个?即停止
  • \?:匹配固定的查询串起始问号,?是正则元字符,匹配字面量问号时必须转义
  • .+:匹配第三个可变段(查询参数内容)
  • $:锚定字符串结尾,避免URL后带多余后缀

2. 文本提取场景(从大段内容中捞出符合格式的URL)

适合日志解析、内容爬取场景,不需要锚定字符串首尾,可全局匹配所有符合规则的URL:

const blobUrlExtractRegex = /https:\/\/.+?\.blob\.core\.windows\.net\/.+?\?\S+/g;

和校验版的差异:

  • 去掉了首尾的^/$锚定
  • 最后一段用\S+匹配查询参数,遇到空白字符即停止,适配文本中URL前后是空格、换行的场景
  • 加了g全局匹配标志,可一次性提取出文本中所有符合规则的URL

扩展用法

如果需要单独提取三个可变段的内容,给可变段加上捕获括号即可:

const blobUrlWithCapture = /^https:\/\/(.+?)\.blob\.core\.windows\.net\/(.+?)\?(.+)$/;
const matchResult = 'https://demo.blob.core.windows.net/container/file.txt?sv=2023-01-01'.match(blobUrlWithCapture);
// matchResult[1] 是第一个可变段:demo
// matchResult[2] 是第二个可变段:container/file.txt
// matchResult[3] 是第三个可变段:sv=2023-01-01

注意:上述正则默认要求三个可变段至少有1个字符,如果业务允许某个可变段为空,把对应位置的+改成*即可。

内容的提问来源于stack exchange,提问作者Sagar Jajoriya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 15:18:15