Ich möchte alle 'm' in meinen Saiten durch 'Meter' ersetzen. Das Problem ist, dass ich das richtige Muster finden muss, da es möglich ist, eine Zahl in Kombination mit einem Leerzeichen vor dem Einheitssymbol zu haben.Wie kann ich mit RegularExpressions eine Übereinstimmung basierend auf einem Muster ersetzen, aber den Wert beibehalten?
Ich habe bereits versucht das folgende Muster: [1-9][0-9]*\\s?m": "[1-9][0-9]*\\s?Meter
mit dem folgenden Code:
static let patterns = [
"[1-9][0-9]*\\s?m": "[1-9][0-9]*\\s?Meter"
];
static public func prepareText(input: String) -> String {
var modifiedInput = input;
for pattern in patterns.keys {
let regex = try! NSRegularExpression(pattern: pattern, options: .caseInsensitive);
modifiedInput = regex.stringByReplacingMatches(
in: modifiedInput, options: [], range: NSMakeRange(0, modifiedInput.count),
withTemplate: patterns[pattern]!);
}
return modifiedInput;
}
Aber ich habe jetzt das Problem, dass der Wert meiner Parameter auch geändert wird:
800 m -> [1-9][0-9]*s?Meter
Wie also kann Ich behalte die 800 vor dem Einheitssymbol?
Vielen Dank für diese wirklich hilfreiche Antwort! Dies ist der richtige Weg! –