用于从Rumble URL中提取视频ID的正则表达式

时间:2016-06-23 04:49:52

标签: php regex

唉 - 正则表达式让我发疯,我只花了20分钟试图让它飞起来,我没有运气。而且我知道有人可以在2秒内弹出这个! : - )

以下是源网址示例:https://rumble.com/v30sqt-oreo-ice-cream-cake.html

我想提取“ v30sqt ”字符。实际上,我想在“rumble.com/”之后和第一次破折号之前提取任何字符。它可能是字母数字,可能是所有字母,可能超过6个字符等。这就是视频ID。

这是针对php preg_match

3 个答案:

答案 0 :(得分:2)

您只需使用parse_url代替regex以及explodecurrent功能,就像

一样
$url = "https://rumble.com/v30sqt-oreo-ice-cream-cake.html";
$parsed_arr = explode("-",ltrim(parse_url($url, PHP_URL_PATH),"/"));
echo current($parsed_arr);

echo $parsed_arr[0];

Demo

答案 1 :(得分:1)

试试这个应该适合你:

/(?<=rumble.com\/).*?\b/g

Demo and Explaination

答案 2 :(得分:0)

Go for:

<?php

$url = "https://rumble.com/v30sqt-oreo-ice-cream-cake.html";
$regex = '~rumble\.com/(?P<video>[^-]+)~';

if (preg_match($regex, $url, $match)) {
    echo $match['video'];
    # v30sqt
}
?>

使用a demo on ideone.com