Совпадение несколько раз в RegexKitLite - PullRequest
0 голосов
/ 11 августа 2010

Я пытаюсь получить некоторую информацию из документа. Я пытаюсь сопоставить информацию, которая мне нужна, с регулярным выражением, которое соответствует 3 числам в строке. Работает нормально, но соответствует только первому появлению. Мне нужно, чтобы оно совпадало неограниченное количество раз, потому что я не знаю, сколько раз эта строка встречается.

NSString *regex = @"String containing data:(\\d+) and more data:(\\d+) and so on";
NSArray *captures = [document captureComponentsMatchedByRegex:regex];
for(NSString *match in captures){
    NSLog(@"%@",match);
}

Приведенный выше код выводит 3 строки - всю строку, первые данные и вторые данные. Все хорошо, но теперь мне нужно продолжать поиск документа, потому что похожие строки будут встречаться n раз.

Как мне это сделать? И есть ли способ сгруппировать совпадения в массив для каждой строки или что-то в этом роде?

1 Ответ

2 голосов
/ 11 августа 2010

Используйте метод arrayOfCaptureComponentsMatchedByRegex:.Это вернет NSArray из NSArray объектов, и каждый вложенный объект NSArray будет иметь захваты (индекс 0 - строка, индекс 1 - первый захват и т. Д.).

...