如何使用Regex或其他技术解析字符串



我需要从以下字符串中解析ID:

 https://itunes.apple.com/us/album/24k-magic/id1161503945?i=1161504024&uo=2

我只需要返回以下内容:

id1161503945

字符串总是以https://itunes.apple.com/开头,并以?i = #####& uo = 2

结尾

我尝试了字符串并用通配符替换,但这无效。

好吧,您可以在以下以下使用此方面。这是工作。我有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];

相同的输出。

希望它能帮助您

如果它确实是URL中的最后一个元素(在查询参数之前),那么您可以使用此简单的正则是:

'/id[^?]+/'

注意:正如@xhienne指向的那样,如果您确定另一个id字符串在搜索部分之前不会出现在任何地方。
如果可能发生,则使用:

'/id[d]+/'

以这种方式,相对于以前的id字符串是安全的,但是搜索的id必须仅遵循数字。

最新更新