iOS 에서 시스템 자체 정규 표현 식 적용

2048 단어 ios정규 표현 식



/ / 문자열 을 조립 하여 인터넷 주 소 를 분석 합 니 다.
NSString *urlString = @"sfdshttp://www.baidu.com";
NSError *error;
/ / http +: [^ \ \ s] * 사이트 주 소 를 검사 하 는 정규 표현 식 입 니 다.
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"http+:[^\\s]*" options:0 error:&error];
if (regex != nil) {
NSTextCheckingResult *firstMatch = [regex firstMatchInString:urlString options:0 range:NSMakeRange(0, [urlString length])];
 if (firstMatch) {
   NSRange resultRange = [firstMatch rangeAtIndex:0];
   //url String 에서 데 이 터 를 캡 처 합 니 다.
   NSString *result = [urlString substringWithRange:resultRange];
   NSLog(@"%@",result);
 }
}
출력 결 과 는:
[1302:403] http://www.baidu.com
iOS 에서 가 져 온 정규 표현 식 의 클래스 를 통 해 문자열 을 필터 하고 선별 하 는 기능 을 볼 수 있 습 니 다.
다른 두 가지 정규 표현 식 의 용법 도 있 습 니 다.
1. NSPredicate (술어) 를 사용 하여 일치
예 를 들 어 유효한 메 일 박스 와 일치 합 니 다:
NSString *email = @“[email protected]”;
    NSString *regex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex];
    BOOL isValid = [predicate evaluateWithObject:email];
서술 어 는 비교적 유연 하지만 서술 어 에 관 한 지식 이 필요 하 다.
2. rangeOfString: option: 직접 찾기
    NSString *searchText = @"// Do any additional setup after loading the view, typically from a nib.";
    NSRange range = [searchText rangeOfString:@"(?:[^,])*\\." options:NSRegularExpressionSearch];
    if (range.location != NSNotFound) {
        NSLog(@"%@", [searchText substringWithRange:range]);
    }
options 에서 NSRegular ExpressionSearch 를 설정 하면 정규 표현 식 을 사용 하여 일치 하 는 첫 번 째 결과 의 위 치 를 되 돌려 줍 니 다.
소결:
첫 번 째 매 칭 은 NSPredicate 의 작성 법 을 배 워 야 하 며 애플 관련 기술 문 서 를 찾 아 봐 야 한다. 첫 번 째 매 칭 결과 에 만 관심 이 있다 면 두 번 째 매 칭 은 간결 하 다. 여러 결 과 를 매 칭 하 는 동시에 여러 번 매 칭 해 야 한다 면 세 번 째 방식 은 효율 이 높다.

좋은 웹페이지 즐겨찾기