iOS开发中如何移除NSString字符串内长度5位及以上的数字部分
解决方案
你可以用Foundation框架自带的正则匹配类实现这个需求,核心是通过正则匹配连续5位及以上的数字序列,替换为空即可。
Objective-C 实现代码
NSString *originalAddress = @"81124 Corerepe, Sin."; NSError *regexError = nil; // 正则说明:^表示仅匹配字符串开头,\d{5,}匹配5位及以上连续数字,\s*匹配数字后跟随的任意数量空格 NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^\\d{5,}\\s*" options:0 error:®exError]; if (!regexError) { NSString *processedAddress = [regex stringByReplacingMatchesInString:originalAddress options:0 range:NSMakeRange(0, originalAddress.length) withTemplate:@""]; NSLog(@"%@", processedAddress); // 输出:Corerepe, Sin. }
如果你的场景中可能存在非开头位置的5位及以上数字也需要移除,把正则里的开头匹配符^去掉即可,正则改为@"\\d{5,}",额外增加一步去除前后空格即可:
processedAddress = [processedAddress stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
Swift 实现代码
let originalAddress = "81124 Corerepe, Sin." // 直接使用字符串的正则替换接口 let processedAddress = originalAddress.replacingOccurrences(of: "^\\d{5,}\\s*", with: "", options: .regularExpression) print(processedAddress) // 输出:Corerepe, Sin.
内容的提问来源于stack exchange,提问作者ekashking
相关产品推荐
相关产品推荐

