我需要从以下字符串解析id:
https://itunes.apple.com/us/album/24k-magic/id1161503945?i=1161504024&uo=2
我只需要返回以下内容:
id1161503945
字符串总是以https://itunes.apple.com/开头,以?i=#####&uo=2结尾。
我尝试了字符串并用通配符替换,但这不起作用。
发布于 2016-12-10 02:56:30
你可以用下面的regex。起作用了。我使用了preg_replace函数。
$data = 'https://itunes.apple.com/us/album/24k-magic/id1161503945?i=1161504024&uo=2';
echo preg_replace("/(.*)\/(\w+)\?(.*)/","$2",$data);
输出是
id1161503945
或者你可以用
preg_match("/(\/)(\w+)(\?)/",$data,$m);
echo $m[2];
同样的输出。
希望它能帮到你
发布于 2016-12-10 02:20:05
如果它始终是url中的最后一个元素(在查询params之前),那么您可以使用以下简单的regex:
'/id[^?]+/'
警告:正如@xhienne所指出的,只有当您确信在搜索的部分之前没有出现另一个id
字符串时,这才有效。
如果可能发生,可以使用:
'/id[\d]+/'
这样,对于以前的id
字符串来说是安全的,但是搜索到的id
必须只后面跟着数字。
https://stackoverflow.com/questions/41071495
复制相似问题