You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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:&regexError];
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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 02:24:07