Modifique el corte de la cadena a la función de cadena para devolver el último índice si no se encuentra la cadena

Tengo una función de corte que obtuveaqu. Me preguntaba cómo puedo modificarlo para que si lato string no se encuentra, pero encontrófrom devolverá el índice final de toda la cadena .count-1). En este momento, obviamente, se bloquea si llamo a.slice y no hayto cadena encontrada.

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])
            }
        }
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta