目标C:在双引号之间获取子串

Den*_*nis 2 xcode substring objective-c nsstring ios

什么是获得双引号之间的每个子串并使其成为数组的最佳方法?

例如,如果字符串(NSString)是:

@"abcd \"efgh\" ijklm \"no\" p \"qrst\" uvwx \"y\" z"
Run Code Online (Sandbox Code Playgroud)

我希望结果如下:

{@"efgh", @"no", @"qrst", @"y"}
Run Code Online (Sandbox Code Playgroud)

作为NSArray.

小智 6

这应该让你开始:

NSString *str = @"abcd \"efgh\" ijklm \"no\" p \"qrst\" uvwx \"y\" z";
NSMutableArray *target = [NSMutableArray array];
NSScanner *scanner = [NSScanner scannerWithString:str];
NSString *tmp;

while ([scanner isAtEnd] == NO)
{
    [scanner scanUpToString:@"\"" intoString:NULL];
    [scanner scanString:@"\"" intoString:NULL];
    [scanner scanUpToString:@"\"" intoString:&tmp];
    if ([scanner isAtEnd] == NO)
        [target addObject:tmp];
    [scanner scanString:@"\"" intoString:NULL];
}

for (NSString *item in target)
{
    NSLog(@"%@", item);
}
Run Code Online (Sandbox Code Playgroud)