Использование результатов NSRegularExpression

Я пытаюсь использовать регулярное выражение для разделения строки в разных частях, разделенных, например, вкладками. Я хочу сохранить каждую часть в другом месте, поэтому мой вопрос заключается в том, как правильно использовать все результаты из регулярного выражения? скажем, мое регулярное выражение:

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(?:\t|^)([^\"\t]+|\"(?:[^\"]|\"\")*\")?"
 options:NSRegularExpressionCaseInsensitive error:&error];
 ********** numberOfMatches = [regex numberOfMatchesInString:string
 options:0 range:NSMakeRange(0, [string length])];

Я читал мой файл по одной строке за раз (нужно сделать это по какой-то причине), так что это часть кода, который я использую, чтобы искать каждую строку для подстрок:

for(int i=0;i<[myFile numberOfLines];i++){

 aRow = [[myFile fileRows] objectAtIndex:i]; 

 NSArray* results = [regex matchesInString:aRow options:0 range:NSMakeRange(0, [aRow length])];
 for (NSTextCheckingResult* result in results) {

 NSString* resultString = [string substringWithRange:result.range];
 NSLog(@"I should be storing this as a correctly separated word:\t%@",resultString);
 }
 }

Что я делаю неправильно/отсутствует? напечатанные результаты не показывают, что я думаю, что они должны показывать... (myFile/fileRows/numberOfLines/текущая строка /aRow работают правильно и содержат то, что они должны проверять, проверять, проверять дважды и проверять три раза перед публикацией)

дополнительная информация: входной файл:

number letter data something
 1 g dvsfg sdf
 2 az "dbfghe fgh" s
 4 b wdf fghfgh
 3 c sdgy fdgh
 5 d egfn dkjfghfgkhj

Возвращает (NSLog-wise :)

_____________number letter data something
 _____________number letter
 _____________numbe
 _____________r da
 _____________a 
 _____________number letter 
 _____________number letter
 _____________number letter data s

вместо:

number
letter
data
something
1
g
dvsfg

... и т.д. (вы понимаете, каждая вкладка разделяет "слово" в другом сообщении NSLog)

1 ответ

Из приведенного выше комментария:

NSString* resultString = [string substringWithRange:result.range];

должно быть

NSString* resultString = [aRow substringWithRange:result.range];

licensed under cc by-sa 3.0 with attribution.