Подтвердить что ты не робот

Использование String.range в 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
}

Этот код извлекает substring между обратными косыми чертами и dot com в Swift 2. Я искал Интернет, и я обнаружил, что rangeOfString изменено на range().

Но все же я не мог заставить код работать в Swift 3.0. Не могли бы вы мне помочь?

edit: Я использую swift 3 07-25 build.

4b9b3361

Ответ 1

В swift 3.0 rangeOfString синтаксис изменился следующим образом.

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
}

Ответ 2

В последнем быстром 3.0 с использованием Xcode 8 Beta 6 (последние обновления для 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
}