NSString批量替换字符串

本文介绍了三种在Objective-C中批量替换NSString字符串的方法:1) 使用NSString自定义的方法;2) 利用Core Foundation框架中的CFString;3) 应用正则表达式进行匹配替换。详细讲解了每种方式的实现和输出效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、使用NSString自定义的方法

NSString* teststr = @"aaaak$kbbbbk$kcccc";
NSLog(@"%@", teststr);
NSMutableString* nsstrmutable = [[NSMutableString alloc] initWithString:teststr];
[nsstrmutable replaceOccurrencesOfString:@"k$k" withString:@"TTT" options:NSCaseInsensitiveSearch range:NSMakeRange(0, nsstrmutable.length)];
NSLog(@"%@", nsstrmutable);

输出:

2015-12-14 10:32:45.070 delcmd[823:285871] aaaak$kbbbbk$kcccc
2015-12-14 10:32:45.073 delcmd[823:285871] aaaaTTTbbbbTTTcccc

2、使用CFString

NSString* teststr = @"aaaak$kbbbbk$kcccc";
NSLog(@"%@", teststr);

CFStringRef cfstr = (__bridge CFStringRef) teststr;
CFMutableStringRef cfstrmutable = CFStringCreateMutableCopy(NULL, CFStringGetLength(cfstr), cfstr);
CFStringFindAndReplace(cfstrmutable, CFSTR("k$k"), CFSTR("TTT"), CFRangeMake(0, CFStringGetLength(cfstrmutable)), kCFCompareCaseInsensitive);
NSString* str = (__bridge NSString*) cfstrmutable;
CFRelease(cfstrmutable);
NSLog(@"%@", str);

输出

2015-12-14 10:32:45.070 delcmd[823:285871] aaaak$kbbbbk$kcccc
2015-12-14 10:32:45.073 delcmd[823:285871] aaaaTTTbbbbTTTcccc

3、使用正则 匹配替换

NSString* teststr = @"aaaak$kbbbbk$kcccc";
NSLog(@"%@", teststr);

NSError* error = nil;
NSRegularExpression* exp = [[NSRegularExpression alloc] initWithPattern:@"(.*?)k\\$k(.*?)" options:NSRegularExpressionCaseInsensitive error:&error];
NSString* expstr = [exp stringByReplacingMatchesInString:teststr options:0 range:NSMakeRange(0, teststr.length) withTemplate:@"$1TTT$2"];
NSLog(@"%@", expstr);

输出

2015-12-14 10:32:45.070 delcmd[823:285871] aaaak$kbbbbk$kcccc
2015-12-14 10:32:45.073 delcmd[823:285871] aaaaTTTbbbbTTTcccc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值