Issue #910

Use one-sided range operator

let string = "Hello world"
string[string.startIndex...] // Hello world
string[..<string.endIndex] // Hello world

Substring

let string = "Hello world"
let range = string.startIndex ..< string.index(string.startIndex, offsetBy: 5)
string[range] // Hello

Convert to and from NSRange

let string = "Hello world"

let range = string.startIndex...
let nsRange = NSRange(range, in: string)

let regex = NSRegularExpression(pattern: pattern)
let matches = regex.matches(in: string, range: nsRange)

for match in matches {
    let range = Range(match.range, in: string)
    let subString = String(string[range])
}

Read more