我需要拆分一个用逗号分隔的字符串,同时保留任何带引号的子字符串(也可能有逗号)。
字符串示例:
NSString *str = @"One,Two,\"This is part three, I think\",Four";
for (id item in [str componentsSeparatedByString:@","])
NSLog(@"%@", item);
返回:
正确的结果(尊重引用的子串)应该是:
有没有合理的方法来做到这一点,而无需重新发明或重写引用感知的解析例程?
答案 0 :(得分:2)
让我们以不同的方式思考这个问题。你所拥有的是一个逗号分隔的字符串,你想要字符串中的字段。
有一些代码:
https://github.com/davedelong/CHCSVParser
你要这样做:
NSString *str = @"One,Two,\"This is part three, I think\",Four";
NSArray *lines = [str CSVComponents];
for (NSArray *line in lines) {
for (NSString *field in line) {
NSLog(@"field: %@", field);
}
}
答案 1 :(得分:0)
这是同一问题的C#答案。
C# Regex Split - commas outside quotes
您可以在Objective-C中使用相同的Regex
<{> NSString split Regex,(?=(?:[^']*'[^']*')*[^']*$)