2011-06-24 39 views
1

我需要拆分一個由逗號分隔的字符串,同時保留任何帶引號的子字符串(也可能帶有逗號)。拆分NSString保留帶引號的子字符串

字符串例如:

NSString *str = @"One,Two,\"This is part three, I think\",Four"; 
for (id item in [str componentsSeparatedByString:@","]) 
    NSLog(@"%@", item); 

這將返回:

  • 一個
  • 兩個
  • 「這是三部分
  • 我覺得」

正確的結果(尊重引述子)應爲:

  • 一個
  • 兩個
  • 「這是第三部分,我認爲」

有一個合理的方式來做到這一點,而不需要重新發明或重寫引用感知解析例程?

+0

正則表達式http://developer.apple.com/library/ios/#documentation /Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html – Joe

回答

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); 
    } 
} 
相關問題