Мне нравится менять «Я пробегаю 12 миль» до «Я бегу 24 мили», используя регулярное выражение. «12» может быть любым числом. Я использую функцию «replace2()» для выполнения математической операции. Параметр захвата «$ 1», переданный функции replace2 («$ 1»), прекрасен. Пожалуйста помоги!Swift: математическая операция с номерами для набора регулярных выражений
func replace(str:String, pattern : String, repl:String)->String?{
let regex = NSRegularExpression .regularExpressionWithPattern(pattern, options: nil,error: nil)
let replacedString = regex.stringByReplacingMatchesInString(str, options: nil,
range: NSMakeRange(0, countElements(str)), withTemplate: repl)
return replacedString
}
replace("I run 12 miles and walk 12.45 km","\\d+(.\\d+)?", "-")!
func replace2(x: String)->String {
let xx = x.toInt()! * 2 // error : return nil?
return String(format: "\(xx)")
}
replace("I run 12 miles ","(\\d+)", replace2("$1"))! // error
Спасибо. Он работает. Но я стараюсь, чтобы умножить много (UNKOWN) номера, как –
" Я бегу 34 миль и 10,54 км в -34 градусах градусов ". Мне нравится умножать все 3 числа на 2. –
извините, обновлено выше –