如何用正则表达式从JavaScript函数中提取任意后缀URL?
从JavaScript文本中提取动态后缀的Stream URL
我来帮你搞定这个正则提取URL的问题!你要找的这类音频链接都嵌套在JS对象的streamUrl字段里,之前测试没成功,大概率是没抓准这个字段的定位逻辑。
精准匹配的正则模式
试试这个正则表达式,它能完美定位并提取所有符合要求的streamUrl值:
"streamUrl":"(https?://[^"]+)"
拆解开给你解释下
"streamUrl":":先匹配固定的字段前缀,确保我们只找streamUrl对应的链接,不会误抓其他URL(https?://[^"]+):这是核心的捕获组,专门提取URL本身:https?://:适配HTTP和HTTPS开头的链接(?表示s是可选的)[^"]+:匹配任意不是双引号的字符,直到碰到下一个双引号就停,这样不管后缀是MP3、AAC还是其他类型,都能完整抓下来
":匹配URL结尾的闭合双引号,确保我们不会多抓内容
测试效果
在regex101里用这个模式测试你的JS文本,它会精准捕获到你需要的http://mp3lg4.tdf-cdn.com/9243/lag_164753.mp3,同时也能抓到同数组里的另一个MP3链接。如果你只需要第一个结果,取第一个捕获组就行;要是想把所有符合的链接都捞出来,直接获取所有捕获结果就好。
进阶过滤(可选)
如果你只想提取音频格式的URL(比如MP3、AAC、OGG这些),可以微调正则来过滤后缀:
"streamUrl":"(https?://[^"]+\.(mp3|aac|ogg|m4a))"
你可以根据自己的需求,在括号里添加更多需要的音频后缀类型。
内容的提问来源于stack exchange,提问作者Daiwik Dan
相关产品推荐
相关产品推荐

