Я хочу разрезать очень длинную строку от одного слова к другому. Я хочу получить подстроку между этими словами. Для этого я использую следующее расширение строки:
extension String {
func slice(from: String, to: String) -> String? {
guard let rangeFrom = range(of: from)?.upperBound else { return nil }
guard let rangeTo = self[rangeFrom...].range(of: to)?.lowerBound else { return nil }
return String(self[rangeFrom..<rangeTo])
}
Это действительно хорошо работает, но моя raw-строка содержит несколько слов "from" "до", и мне нужна каждая подстрока, которая находится между из этих двух слов, но с моим расширением я могу получить только первую подстроку.
Пример:
let raw = "id:244476end36475677id:383848448end334566777788id:55678900end543"
Я хочу получить следующие подстроки из этого примера необработанной строки:
sub1 = "244476"
sub2 = "383848448"
sub3 = "55678900"
Если я позвоню:
var text = raw.slice(from: "id:" , to: "end")
Я получу только первый случай (text = "244476")
Спасибо, что прочитали. Каждый ответ был бы хорош.
PS: я всегда получаю ошибку, делая фрагменты кода в stackoverflow.