-2

使用 Swift 4,我正在尝试检测字符串中的 url。我目前正在使用此代码:

let urlLink : String = "https://skift.com/2017/11/27/8-financial-themes-shaping-the-hotel-industry-in-2018-and-beyond/?utm_campaign=Early%20Time%20Zone%20-%20Skift%20Daily%20Newsletter&utm_source=hs_email&utm_medium=email&utm_content=58793637&_hsenc=p2ANqtz-8cG4tZKNEv7E1FRrVn-T-qwKRpJKx8JQBAgF7priRL78ToAX49w4e1R2sdCxSI9lik4NXXkW241XSN3UkVxVrjVjRu7x0N8i-txn8F0Jxnhgej3OI&_hsmi=58793637"
let detector = try! NSDataDetector(types: NSTextCheckingResult.CheckingType.link.rawValue)
let matches = detector.matches(in: urlLink, options: [], range: NSRange(location: 0, length: urlLink.count))

如您所见,我的字符串已经格式化为用"%20"替换空格。

问题是我的代码在最后一行崩溃了。有没有更好的方法来格式化我的字符串?

我通过将所有"%20"替换为""找到了一种解决方法,这工作正常,但我确信有更好的方法来处理它。

4

1 回答 1

0

检查这个

let detector = try! NSDataDetector(types: NSTextCheckingResult.CheckingType.link.rawValue)
                        let matches = detector.matches(in: input!, options: [], range: NSMakeRange(0, (input?.characters.count)!))
                        var url = String()
                        for match in matches

                        {
                            url = (input! as NSString).substring(with: match.range)

                        }
于 2017-11-29T11:26:10.913 回答