iOS:正規表現
3787 ワード
OSには、正規表現のマッチングNSPredicate、NSRegularExpression、NSStringの3つの方法があります
一、NSPredicateの使用
二、ネイティブNSRegularExpressionの使用
三、NSStringの使用
一、NSPredicateの使用
void useNSPredicate()
{
NSString *phoneNO = @"13182428488";
NSString *regex = @"^1[3|4|5|7|8]\\d{9}$";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
BOOL isValid = [predicate evaluateWithObject:phoneNO];
NSLog(@"%s %d", __FUNCTION__ ,isValid);
}
二、ネイティブNSRegularExpressionの使用
void useNSRegularExpression()
{
NSString *phoneNO = @"13182428488";
NSError *error = NULL;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"^1[3|4|5|7|8]\\d{9}$" options:NSRegularExpressionCaseInsensitive error:&error];
NSTextCheckingResult *result = [regex firstMatchInString:phoneNO options:0 range:NSMakeRange(0, [phoneNO length])];
if (result) {
NSRange resultRange = [result rangeAtIndex:0];
// urlString
NSString *stringResult = [phoneNO substringWithRange:resultRange];
NSLog(@"%s %@
", __FUNCTION__, stringResult);
}
}
三、NSStringの使用
void useNSString()
{
NSString *phoneNO = @"13182428488";
NSRange range = [phoneNO rangeOfString:@"^1[3|4|5|7|8]\\d{9}$" options:NSRegularExpressionSearch];
if (range.location != NSNotFound) {
NSLog(@"%s %@
", __FUNCTION__, [phoneNO substringWithRange:range]);
}
}