captureComponentsMatchedByRegex:
возвращает все записи первого совпадения регулярного выражения.Индекс массива (он же захват) 0
- это «весь текст, соответствующий регулярному выражению».Если регулярное выражение содержит дополнительные группы захвата, как это делает ваше регулярное выражение, эти индексы массива начинаются с 1 и продолжаются для такого количества групп захвата, которые присутствуют в регулярном выражении.
Вероятно, вам нужен метод componentsMatchedByRegex:capture:
.Этот метод возвращает массив всех совпадений в строке, в которую он отправляется, и дополнительно позволяет указать, какая группа захвата используется для создания массива результатов.Например:
NSString *myText = @"mary had a little lamb";
NSString *regexString = @"mary(.*?)little";
for(NSString *match in [myText componentsMatchedByRegex:regexString capture:1L]) {
NSLog(@"%@",match);
}
Выше будет напечатано " had a "
.