需要帮助从uri中提取spotify id

时间:2012-08-28 01:29:05

标签: php regex

我正试图从spotify uri中提取spotify id(例如,spotify:track:5xioIP2HexKl3QsI8JDlG8)我知道这应该很容易,但我似乎无法在http://regexpal.com/上得到任何验证。

到目前为止我所拥有的是:

spotify:track:[a-zA-Z0-9]{22}

但是它拉动了整个弦,我怎么能只让它在结肠后拉?

2 个答案:

答案 0 :(得分:3)

正则表达式很好,但您需要将id部分(使用())分组,以便可以捕获它:

$str = "spotify:track:5xioIP2HexKl3QsI8JDlG8";
if (preg_match('/spotify:track:([a-zA-Z0-9]{22})/', $str, $re)) {
  $spotifyId = $re[1];
}

<强> DEMO

答案 1 :(得分:0)

除了使用捕获组之外,您还可以使用positive look-behind,例如

if (preg_match('/(?<=spotify:track:)[a-zA-Z0-9]{22}/', $str, $matches)) {
    $id = $matches[0];
}

在这里演示 - http://codepad.viper-7.com/ESKgCD