Pourquoi ce code ne renvoie-t-il que l'ensemble de la correspondance regex au lieu du groupe de capture ?
Entrée
@"A long string containing Name:</td><td>A name here</td> amongst other things"
Résultats attendus
A name here
Sortie réelle
Name:</td><td>A name here</td>
Code
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);
}
Code tiré de la documentation d'Apple. Je sais qu'il existe d'autres bibliothèques pour faire cela mais je veux m'en tenir à ce qui est intégré pour cette tâche.