знаю, что он старый, но думал, что кому-то может понравиться это решение Swift
extension String {
func appendSuffixBeforeExtension(suffix: String) -> String {
let regex = NSRegularExpression(pattern: "(\\.\\w+$)", options: nil, error: nil)
return regex!.stringByReplacingMatchesInString(self, options: nil, range: NSMakeRange(0, count(self)), withTemplate: "\(suffix)$1")
}
}
Тогда назови это так
let mytxt = "/somepath/file.jpg"
let retina = mytxt.appendSuffixBeforeExtension("@x2")