正则表达式提取链接的一部分(php)

时间:2013-11-22 17:40:40

标签: php regex

我得到了一些链接:

/3/topic/video1148288/

我想拍摄视频后的号码。我不能仅用数字替换链接,因为在实际视频的ID之前还有更多。

我试过

$embed = preg_match("#\b/video([0-9][0-9][0-9][0-9][0-9][0-9][0-9])/#", $raw);

但它不起作用。

任何帮助?

3 个答案:

答案 0 :(得分:1)

尝试一下:

$raw = "/3/topic/video1148288/";
preg_match("#/video(\d+)/#", $raw, $matches);
$embed = $matches[1];

工作示例:http://3v4l.org/oLPMX

通过查看您的尝试,需要注意的一点是,preg_match会返回真值/错误值,而不是实际匹配值。这些在第三个参数中找到(在我的例子中为$matches)。

答案 1 :(得分:1)

$raw = "/3/topic/video1148288/";

preg_match("/video(\d+)/", $raw, $results);

print "$results[1]";

答案 2 :(得分:1)

preg_match('/(?<=video)\d+/i', $raw, $match);
echo $match[0];