Usage of String.range in Swift 3.0

2019-01-14 21:56发布

let us = "http://example.com"
let range = us.rangeOfString("(?<=://)[^.]+(?=.com)", options:.RegularExpressionSearch)
if range != nil {
    let found = us.substringWithRange(range!)
    print("found: \(found)") // found: example
}

This code extracts substring between backslashes and dot com in Swift 2. I searched Internet and I found that rangeOfString changed to range().

But still I could not make the code work in Swift 3.0. Could you help me ?

edit : I'm using swift 3 07-25 build.

标签: ios swift3
2条回答
时光不老,我们不散
2楼-- · 2019-01-14 22:37

In latest swift 3.0 using Xcode 8 Beta 6 (latest updates to SDK):

let us = "http://example.com"
let range = us.range(of: "(?<=://)[^.]+(?=.com)", options: .regularExpression)
if range != nil {
    let found = us.substring(with: range!)
    print("found: \(found)") // found: example
}
查看更多
兄弟一词,经得起流年.
3楼-- · 2019-01-14 22:57

In swift 3.0 rangeOfString syntax changed like this.

let us = "http://example.com"
let range = us.range(of:"(?<=://)[^.]+(?=.com)", options:.regularExpression)
if range != nil {
     let found = us.substring(with: range!)
     print("found: \(found)") // found: example
}
查看更多
登录 后发表回答