2

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

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

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

但是它会拉整个字符串,我怎样才能让它只在冒号之后拉?

4

2 回答 2

3

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

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

演示

于 2012-08-28T01:38:24.557 回答
0

除了使用捕获组之外,您还可以使用积极的后视,例如

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

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

于 2012-08-28T01:42:53.730 回答