2016-05-28 31 views
2

我需要找到一种方法从iTunes URL中解析应用程序的ID号。例如,这个网址 -从iTunes URL获取应用程序的ID号字符串

https://itunes.apple.com/gb/app/mouse-times-florida/id1021402097?mt=8

能给我这个 - 1021402097

我正在考虑不同的方式用绳子分裂和这样做,但他们似乎都种哈克。我想我可以在'id'之后分割字符串,并在10位数后结束分割,但是将来可能会将ID增加到11位。

任何人有使用正则表达式或更好的主意?

回答

4

如果你可以做如下假设:

  • 的ID将只包含数字。
  • 当前数字为10的位数只会增加。
  • 在url中,id...部分包含该id。

然后,你可以使用一个简单的正则表达式像这样:id([\d]{10,}),其中您的ID将在1组的工作例如捕获:https://regex101.com/r/nD0mZ8/1

+0

我喜欢你的解决方案因素在子串大小的有机增长。 –

+0

您不能假设最小长度为10.例如https://itunes.apple.com/us/app/minecraft-pocket-edition/id479516143?mt=8有9。 –

0

没有必要使用正则表达式或做任何花哨的解析。将网址置于NSURL。然后获得NSURLlastPathComponent。这会给你id1021402097部分。

现在简单地获取从索引2开始的子串,并且您将有1021402097

let url = NSURL(string:"https://itunes.apple.com/gb/app/mouse-times-florida/id1021402097?mt=8") 
let idStr = url!.lastPathComponent! 
let appId = idStr.substringFromIndex(idStr.startIndex.advancedBy(2)) 

我在Swift中不流利,因此您需要正确处理选项。