I have 2 functions written in Swift 2, but Apple forced me to migrate to Swift 4 and I can't fix the functions.
extension String {
func stringsMatchingRegularExpression(expression: String) -> [String] {
if let range = self.rangeOfString(expression, options: NSString.CompareOptions.RegularExpressionSearch, range: nil, locale: nil) {
return [self[range]] + self[range.endIndex..<self.endIndex].stringsMatchingRegularExpression(expression)
}
return []
}
func stringsMatchingRegularExpressionLarge(expression: String) -> [String] {
var result = [String]()
var currentRange = self.characters.indices
while let range = self.rangeOfString(expression, options: NSString.CompareOptions.RegularExpressionSearch, range: currentRange, locale: nil) {
result.append(self[range])
currentRange.startIndex = range.endIndex
}
return result
}
}
The return of the first function is the problem I can't fix it.
The 3rd line is if let range = self.range(of: expression, options: NSString.CompareOptions.regularExpression, range: nil, locale: nil){
in Swift 4
In 2nd function I don't know how .characters migrating.