迅速 - 子从字符串
问题描述:
我有一些URL字符串,如:迅速 - 子从字符串
让为url1 = “https://abc/help?user_info_id=5#help-article03”
让URL2 = “https://cde?user_info_id=455&artical=4”
让URL3 = “https://ghi/help?user_info_id=5”
现在我想从这些网址获取user_info_id。
为url1返回5,URL2返回455和URL3返回5
这是我的代码
func getID(string: String) -> String {
let range = string.rangeOfString("user_info_id=")
guard let endIndex = range?.endIndex else { return "" }
let remain = string.substringFromIndex(endIndex)
let num = ""
var result = ""
for c in remain.characters {
if num.containsString(String(c)) {
result.append(c)
} else {
break
}
}
return result
}
请告诉我你的想法。谢谢!
答
使用(NS)URLComponents
和过滤查询项目:
let url1 = "https://cde?user_info_id=455&artical=4"
if let components = NSURLComponents(string: url1),
let queryItems = components.queryItems,
let userInfoId = queryItems.filter({$0.name == "user_info_id"}).first where userInfoId.value != nil {
print(userInfoId.value!)
}
尝试正则表达式这 – pacification
您也可以使用https://github.com/kylef/URITemplate.swift LIB – Avt