所以这是我从服务器返回的字符串:
var arrayString = "IT34:1, IT35:2, IT36:1, IT35:3"
我想去掉所有出现的“:1”、“:2”,我正在使用:
let cleanStr = arrayString.stringByReplacingOccurrencesOfString(":1", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
let cleanStr1 = cleanStr.stringByReplacingOccurrencesOfString(":2", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
等等……
这看起来效率不高。是否可以仅使用一个 .stringByReplacingOccurrencesOfString
方法来完成此操作?喜欢出现“:(a number)”?
最佳答案
这可以使用正则表达式来完成:
let string = "IT34:1, IT35:2, IT36:1, IT35:3"
var cleanStr = string
if let regex = NSRegularExpression(pattern: ":[0-9]", options:.CaseInsensitive, error: nil) {
cleanStr = regex.stringByReplacingMatchesInString(string, options: nil, range: NSMakeRange(0, countElements(string)), withTemplate: "")
}
println(cleanStr)
在 Objective-C 中:
NSString *string = @"IT34:1, IT35:2, IT36:1, IT35:3";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@":[0-9]" options:NSRegularExpressionCaseInsensitive error:nil];
NSString *newString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@""];
NSLog(@"%@", newString);
关于ios - 替换出现的字符串模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29504045/