我想在NSString中的一组字符前面添加一个特定的字符。
例如:
NSString *input = @"abc^ 123 # //> <";
NSString *insertBefore = @"~";
NSCharacterSet *needBeInserted = [NSCharacterSet
characterSetWithCharactersInString:@"~#^/<>"];
预期的结果:中needBeInserted
出现的任何字符input
都会添加insertBefore
。
result = @"abc~^ 123 ~# ~/~/~> ~<";
有一种优雅的方法吗?而不是使用多行stringByReplacingOccurrencesOfString
?
您可以将字符放入字符类中,并使用基于正则表达式的替换:
[~#^/<>]
在以下位置替换为~$0
,$0
将整个匹配文本插入到结果字符串中。请参阅regex演示。
NSError *error = nil;
NSString *input = @"abc^ 123 # //> <";
NSString *pat = @"[~#^/<>]";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pat options:nil error:&error];
NSString *modifiedString = [regex stringByReplacingMatchesInString:input
options:0
range:NSMakeRange(0, [input length])
withTemplate:@"~$0"];
NSLog(@"%@", modifiedString);
结果: abc~^ 123 ~# ~/~/~> ~<
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句