简体   繁体   English

swift-字符串中的子字符串

[英]swift - substring from string

I have some of url string like: 我有一些网址字符串,例如:

let url1 = " https://abc/help?user_info_id=5#help-article03 " 让url1 =“ https:// abc / help?user_info_id = 5#help-article03

let url2 = " https://cde?user_info_id=455&artical=4 " 让url2 =“ https:// cde?user_info_id = 455&artical = 4

let url3 = " https://ghi/help?user_info_id=5 " 让url3 =“ https:// ghi / help?user_info_id = 5

Now i want to get user_info_id from these urls. 现在,我想从这些URL中获取user_info_id。

url1 return 5, url2 return 455 and url3 return 5 url1返回5,url2返回455,url3返回5

This is my code 这是我的代码

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 = "0123456789"
    var result = ""
    for c in remain.characters {
        if num.containsString(String(c)) {
            result.append(c)
        } else {
            break
        }
    }
    return result
}

Please tell me your idea. 请告诉我你的想法。 Thank you! 谢谢!

Use (NS)URLComponents and filter the query items: 使用(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!)
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM