Objective-C Language
NSRegularExpression
Sök…
Syntax
- NSRegularExpression * regex = [NSRegularExpression regularExpressionWithPattern: PATTERN-alternativ: OPTIONS error: ERROR];
- NSArray <NSTextCheckingResult *> * results = [regex matchesInString: STRING-alternativ: OPTIONS-intervall: RANGE_IN_STRING];
- NSInteger numberOfMatches = [regex numberOfMatchesInString: STRING-alternativ: OPTIONS-intervall: RANGE_IN_STRING];
Hitta alla siffror i en sträng
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);
}
Produktionen kommer att vara match: 42
och match: 8672
.
Kontrollera om en sträng matchar ett mönster
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");
Outputen visar att den första strängen är ett telefonnummer och den andra inte.
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow