【发布时间】:2018-05-19 03:43:24
【问题描述】:
我想用“meter”替换字符串中的所有“m”。问题是我必须找到正确的模式,因为单位符号前面可能有一个空格组合的数字。
我已经尝试过以下模式:[1-9][0-9]*\\s?m": "[1-9][0-9]*\\s?Meter,代码如下:
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;
}
但是现在我的问题是我的参数的值也改变了:
800 m -> [1-9][0-9]*s?Meter
那么我怎样才能在单位符号前面保留800呢?
【问题讨论】:
标签: regex swift replace pattern-matching nsregularexpression