Objective-C Language
NSRegularExpression
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