如何在NSString中的每个单词的开头和结尾添加一个字符

时间:2016-04-20 12:22:03

标签: ios objective-c regex nsstring

假设我有这个:

NSString *temp=@"its me";

现在假设我想要' " '在每个单词的开头和结尾,我如何实现它以获得这样的结果:

"its" "me"

我必须使用正则表达式吗?

2 个答案:

答案 0 :(得分:2)

如果字符串中有标点符号,则用空格分割可能是不够的。

使用word boundary \b:它匹配前导和尾随字边界(也就是说,它将匹配单词和非单词字符之间的空白空间,如果遵循,则匹配字符串的开头/结尾/前面有一个单词字符。

NSError *error = nil;
NSString *myText = @"its me";
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\b" options:NSRegularExpressionCaseInsensitive|NSRegularExpressionAnchorsMatchLines error:&error];
NSString *modifiedString = [regex stringByReplacingMatchesInString:myText options:0 range:NSMakeRange(0, [myText length]) withTemplate:@"\""];
NSLog(@"%@", modifiedString); // => "its" "me"

请参阅IDEONE demo

详情请见regex syntax in Objective C here

答案 1 :(得分:1)

你可以做点什么,

 NSString *str = @"its me";

NSMutableString *resultStr = [[NSMutableString alloc]init];

NSArray *arr = [str componentsSeparatedByString:@" "];

for (int i = 0; i < arr.count; i++) {

    NSString *tempStr = [NSString stringWithFormat:@"\"%@\"",arr[i]];

    resultStr = [resultStr stringByAppendingString:[NSString stringWithFormat:@"%@ ",tempStr]];

}
NSLog(@"result string is : %@",resultStr);

希望这会有所帮助:)