У меня есть функция среза, которую я получил здесь . Мне было интересно, как я могу изменить его так, чтобы, если строка to
не была найдена, но она нашла from
, она возвращала бы конечный индекс всей строки (.count-1
). Сейчас, очевидно, происходит сбой, если я звоню .slice
, а строка to
не найдена.
extension String {
func slice(from: String, to: String) -> String? {
return (range(of: from)?.upperBound).flatMap { substringFrom in
(range(of: to, range: substringFrom..<endIndex)?.lowerBound).map { substringTo in
String(self[substringFrom..<substringTo])
}
}
}
}