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

如何编写正则提取带expire和token参数的完整视频URL

正则提取带expire和token参数的MP4 URL解决方案

你原来的正则存在三个核心问题:

  • 语法层面括号未闭合,正则本身无法正常运行
  • 对token的字符规则限制过死,你写的规则要求token必须按「数字+字母+数字」的顺序循环,而实际token可以是任意大小写字母和数字的组合
  • 没有设置URL匹配边界,要么提前截断要么过度匹配到URL以外的内容

推荐使用以下正则:
/https?:\/\/[^"\s<>]+\.mp4\?expire=\d+&token=[a-z0-9]+/i

正则规则说明:

https?:\/\/ 匹配http或https协议头
[^"\s<>]+ 排除引号、空格、HTML尖括号等不会出现在URL里的字符,确保只匹配完整URL段
\.mp4\? 精准匹配.mp4后缀加参数起始的问号
expire=\d+ 匹配expire参数和纯数字格式的过期时间
&token=[a-z0-9]+ 匹配token参数和字母数字组合的token值
末尾的i修饰符适配参数名大小写不统一的场景

如果页面里的&符号被转义成了HTML实体&amp;,可以调整正则同时适配两种格式:
/https?:\/\/[^"\s<>]+\.mp4\?expire=\d+(?:&|&amp;)token=[a-z0-9]+/i

修改后的完整代码:

$html = file_get_contents("http://www.videos.com/");

preg_match_all(
    '/https?:\/\/[^"\s<>]+\.mp4\?expire=\d+(?:&|&amp;)token=[a-z0-9]+/i',
    $html,
    $posts,
    PREG_SET_ORDER
);

foreach ($posts as $post) {
    $link = $post[0];
    echo $link . PHP_EOL;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:06:03