文字列が半角英数のみかどうかを判定する。
1 2 3 4 5 6 7 8 |
NSString *mystring = @"文字列"; NSString *regex = @"[a-z][A-Z][0-9]"; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; if ([predicate evaluateWithObject:mystring] == YES) { //半角英数のみ } else { //半角英数以外が含まれる } |
マッチした文字列を抜き出す
1 2 3 4 5 6 7 8 9 10 11 12 |
NSString *dateString = @"2014年10月08日"; NSString *pattern = @"([0-9]{4})年([0-9]{2})月([0-9]{2})日"; NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:&error]; if(error == nil){ NSTextCheckingResult *match = [regex firstMatchInString:dateString options:NSMatchingReportProgress range:NSMakeRange(0, [dateString length])]; if([match numberOfRanges] > 0){ NSLog(@"%@", [dateString substringWithRange:[match rangeAtIndex:0]]); // 2014年10月08日 NSLog(@"%@", [dateString substringWithRange:[match rangeAtIndex:1]]); // 2014 NSLog(@"%@", [dateString substringWithRange:[match rangeAtIndex:2]]); // 10 NSLog(@"%@", [dateString substringWithRange:[match rangeAtIndex:3]]); // 08 } } |