Группы захвата не работают в NSRegularExpression

Почему этот код выводит только все совпадение регулярного выражения вместо группы захвата?

Вход

@"A long string containing Name:</td><td>A name here</td> amongst other things"

Ожидаемый результат

A name here

Фактический результат

Name:</td><td>A name here</td>

Код

NSString *htmlString = @"A long string containing Name:</td><td>A name here</td> amongst other things";
NSRegularExpression *nameExpression = [NSRegularExpression regularExpressionWithPattern:@"Name:</td>.*\">(.*)</td>" options:NSRegularExpressionSearch error:nil];

NSArray *matches = [nameExpression matchesInString:htmlString
                                  options:0
                                    range:NSMakeRange(0, [htmlString length])];
for (NSTextCheckingResult *match in matches) {
    NSRange matchRange = [match range];
    NSString *matchString = [htmlString substringWithRange:matchRange];
    NSLog(@"%@", matchString);
}

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

39
задан Maciej Swic 25 July 2011 в 21:53
поделиться