ios - 替换出现的字符串模式

标签 ios string swift

所以这是我从服务器返回的字符串:

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/

相关文章:

ios - 在 UIView 子类中执行计算会破坏 MVC 的设计模式吗?

ios - 我有 2 个数组。如果在两个数组中都找到,则需要从其中一个数组中删除字符串

ios - 如何在 iOS 中将自定义元数据写入 PNG 图像

java - 分析单词文本的算法

objective-c - Swift 3.1 中的 `@discardableResult override init()` 抛出 `warn_unused_result` Objective-C 警告

ios - 将 Facebook SDK 连接到 xcode/swift 可以正常工作,但我遇到了问题

c# - 将字符串值解析为 DateTime 对象?

将长十六进制字符串转换为十进制字符串

ios - 如何使用用户输入在 Firebase 中为 child 命名?

swift - 如何从 Swift 中的变量获取枚举