2016-05-28 64 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中不流利,因此您需要正確處理選項。