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 의 작성 법 을 배 워 야 하 며 애플 관련 기술 문 서 를 찾 아 봐 야 한다. 첫 번 째 매 칭 결과 에 만 관심 이 있다 면 두 번 째 매 칭 은 간결 하 다. 여러 결 과 를 매 칭 하 는 동시에 여러 번 매 칭 해 야 한다 면 세 번 째 방식 은 효율 이 높다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.