H. Cliff H. Cliff - 3 months ago 61
iOS Question

Usage of String.range in Swift 3.0

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.

Answer

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
}