Recherche…


Syntaxe

  • NSRegularExpression * regex = [NSRegularExpression regularExpressionWithPattern: options PATTERN: erreur OPTIONS: ERROR];
  • NSArray <NSTextCheckingResult *> * results = [regex matchesInString: options STRING: plage OPTIONS: RANGE_IN_STRING];
  • NSInteger numberOfMatches = [regex numberOfMatchesInString: options STRING: plage OPTIONS: RANGE_IN_STRING];

Trouver tous les nombres dans une chaîne

NSString *testString = @"There are 42 sheep and 8672 cows.";
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(\\d+)"
                                                                       options:NSRegularExpressionCaseInsensitive
                                                                         error:&error];

NSArray *matches = [regex matchesInString:testString
                                  options:0
                                    range:NSMakeRange(0, testString.length)];

for (NSTextCheckingResult *matchResult in matches) {
    NSString* match = [testString substringWithRange:matchResult.range];
    NSLog(@"match: %@", match);
}

La sortie sera la match: 42 et la match: 8672 .

Vérifier si une chaîne correspond à un motif

NSString *testString1 = @"(555) 123-5678";
NSString *testString2 = @"not a phone number";

NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^\\(\\d{3}\\) \\d{3}\\-\\d{4}$"
                                                                       options:NSRegularExpressionCaseInsensitive error:&error];

NSInteger result1 = [regex numberOfMatchesInString:testString1 options:0 range:NSMakeRange(0, testString1.length)];
NSInteger result2 = [regex numberOfMatchesInString:testString2 options:0 range:NSMakeRange(0, testString2.length)];

NSLog(@"Is string 1 a phone number? %@", result1 > 0 ? @"YES" : @"NO");
NSLog(@"Is string 2 a phone number? %@", result2 > 0 ? @"YES" : @"NO");

La sortie indique que la première chaîne est un numéro de téléphone et que la seconde ne l’est pas.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow