정규 표현 식 사용 iOS

1916 단어
방법 1, 술어 (NSPredicate) 정규 표현 식 만 들 기
사용자 가 입력 한 문자열 이 합 법 적 인지 판단 하기 위해 사용 합 니 다:
//        :        ,      
NSString *regex = @"^[a-z0-9A-Z]*$";
//                
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
//       
NSString *str = @"Hello100";
//         
if ([predicate evaluateWithObject:str]) { NSLog(@"Match");}

방법 2. NSRegularExpression 클래스 에서 정규 표현 식 을 만 듭 니 다.
앞에서 도 말 했 듯 이 우 리 는 정규 로 우리 가 원 하 는 특정한 부분 을 걸 러 내 고 얻 을 수 있 으 며 실현 방법 도 간단 하 다. NSRegular Expression 과 같은 실현 을 사용 할 수 있다.
NSString *url = @"[email protected]";NSError *error;
//   NSRegularExpression          
NSRegularExpression *regex = [NSRegularExpression        regularExpressionWithPattern:@"[^@]*\\."        options:0        error:&error];
if (!error) { //        //             
NSTextCheckingResult *match = [regex firstMatchInString:url             options:0              range:NSMakeRange(0, [url length])]; 
if (match) {  //           
NSString *result = [url substringWithRange:match.range]; 
NSLog(@"%@",result); 
}} else { //      ,         
NSLog(@"error - %@", error);
}

방법 3. NSRegular Expression 류 의 캡 처 여러 결과
문자열 에 특정 규칙 에 맞 는 문자 가 여러 개 있 으 면 특정한 규칙 에 맞 는 문 자 를 각각 가 져 올 수 있 습 니 다.
NSString *regex = @"\\-\\d*\\.";
NSString *str = @"-34023242.-34203020.";
NSError *error;
NSRegularExpression *regular = [NSRegularExpression regularExpressionWithPattern:regex options:NSRegularExpressionCaseInsensitive error:&error];
//  str       
NSArray *matches = [regular matchesInString:str options:0 range:NSMakeRange(0, str.length)];
//            
for (NSTextCheckingResult *match in matches) { 
NSRange range = [match range];
NSString *mStr = [str substringWithRange:range];
NSLog(@"%@", mStr);
}

좋은 웹페이지 즐겨찾기