Develop
2014.01.28 15:46
[ios] NSString 간단한 정규식 사용법
Views 18269 Comment 0
NSString 에서도 정규식을 사용할 수 있다.
아래는 자주 사용하는 간단한 예제..
1.숫자인지 체크
NSString *str = @"1234"; NSString *str1 = @"1234gfd432"; NSString *ptn = @"^[0-9]*$"; NSRange range = [str rangeOfString:ptn options:NSRegularExpressionSearch]; NSRange range1 = [str1 rangeOfString:ptn options:NSRegularExpressionSearch]; NSLog(@"%d, %d", range.length, range1.length); // 4, 0을 출력
2.영문자[특수문자(-,_,&)포함]인지 체크
NSString *str = @"1234"; NSString *str1 = @"asdfb-sdf"; NSString *ptn = @"^[a-zA-Z-\_&]*$"; NSRange range = [str rangeOfString:ptn options:NSRegularExpressionSearch]; NSRange range1 = [str1 rangeOfString:ptn options:NSRegularExpressionSearch]; NSLog(@"%d, %d", range.length, range1.length); // 0, 9 출력
3.유효한 이메일 주소 형식인지 체크
NSString *str = @"1234@abc"; NSString *str1 = @"leegt__@naver.com"; NSString *ptn = @"^([a-zA-Z0-9-\_]{3,20})@([a-zA-Z0-9-\_]{3,20}).([a-zA-Z0-9-\_.]{2,20})$"; NSRange range = [str rangeOfString:ptn options:NSRegularExpressionSearch]; NSRange range1 = [str1 rangeOfString:ptn options:NSRegularExpressionSearch]; NSLog(@"%d, %d", range.length, range1.length); // 0, 17 출력
4.유효한 전화번호인지 체크
NSString *str = @"1234"; NSString *str1 = @"02-1234-1234"; NSString *ptn = @"([0-9]{2,3})-([0-9]{3,4})-([0-9]{4})"; NSRange range = [str rangeOfString:ptn options:NSRegularExpressionSearch]; NSRange range1 = [str1 rangeOfString:ptn options:NSRegularExpressionSearch]; NSLog(@"%d, %d", range.length, range1.length); // 0, 12 출력
5.유효한 핸드폰 번호인지 체크
NSString *str = @"012-123-1234"; NSString *str1 = @"010-1234-1234"; NSString *ptn = @"(010|011|016|017|018|019)-([0-9]{3,4})-([0-9]{4})"; NSRange range = [str rangeOfString:ptn options:NSRegularExpressionSearch]; NSRange range1 = [str1 rangeOfString:ptn options:NSRegularExpressionSearch]; NSLog(@"%d, %d", range.length, range1.length); // 0, 12 출력
6.정규식을 이용한 문자열 치환시
아래 주소 참조해주세요,
외부 데이터를 가져올때 태그를 제거하고 글자만 뽑아 내고 싶을때 사용하면 편합니다.
아래 소스에서 정규식이 @"<("[^"]*"|'[^']*'|[^'">])*>" 으로 되어져 있습니다. 이를 @"<[^<|>]*>"으로 사용해도
같은 결과를 뽑을수 있습니다.
자바스크립트에서 사용하는 정규식과 동일 ㅋㅋ
NSString *email = @"picomax@nate.com"; NSArray *split = [email componentsSeparatedByString:@"@"]; NSString *pre = [[split objectAtIndex:0] substringWithRange:NSMakeRange(0, 2)]; NSString *post = [[split objectAtIndex:0] substringWithRange:NSMakeRange(2, [[split objectAtIndex:0] length]-2)]; NSString *template = @"*"; NSError *error = nil; NSRegularExpression *regexp = [NSRegularExpression regularExpressionWithPattern:@"[a-zA-Z0-9-_]" options:0 error:&error]; NSString *replaced = [regexp stringByReplacingMatchesInString:post options:0 range:NSMakeRange(0,post.length) withTemplate:template]; NSString *result = ([split count]>1) ? [NSString stringWithFormat:@"%@%@@%@", pre, replaced, [split objectAtIndex:1]] : [NSString stringWithFormat:@"%@%@@%@", pre, replaced, @"nate.com"];
No. | Category | Subject | Author | Date | Views |
---|---|---|---|---|---|
201 | Develop |
[c++] 현승이가 준 메신저 소스.. ㅋㅋ
![]() |
hooni | 2013.04.23 | 8301 |
200 | Develop |
[c++] 현승이가 준 P2P 프로그램 소스 ㅋㅋ
![]() |
hooni | 2013.04.23 | 12107 |
199 | Develop |
[c++] 헤더, 소스 파일 분리해서 작성해본 테스트 소스
![]() |
hooni | 2013.04.23 | 6719 |
198 | Develop |
[c++] 프리렉(freelec) 예제 자료.. ㅋㄷ
![]() |
hooni | 2013.04.23 | 6858 |
197 | Develop |
[c++] 퍼즐 버블버블 간단한 원리(사용공식)
![]() |
hooni | 2013.04.23 | 10001 |
196 | Develop |
[c++] 트리컨트롤 예제1 ㅋㅋ
![]() |
hooni | 2013.04.23 | 7197 |
195 | Develop |
[c++] 트리컨트롤 스텝 3 예제..
![]() |
hooni | 2013.04.23 | 7969 |
194 | Develop |
[c++] 트리컨트롤 스텝 2 예제..
![]() |
hooni | 2013.04.23 | 6984 |
193 | Develop |
[c++] 템플릿(Template) 예제 소스..
![]() |
hooni | 2013.04.23 | 7004 |
192 | Develop |
[c++] 초간단 스택 두 가지 방식(class, struct)
![]() |
hooni | 2013.04.23 | 7638 |
191 | Develop |
[c++] 채팅로봇 소스.. ㅋㄷㅋㄷ
![]() |
hooni | 2013.04.23 | 8906 |
190 | Develop |
[c++] 중복실행 방지(Mutex;뮤텍스 ) 샘플 소스.. ㅋㅋ
![]() |
hooni | 2013.04.23 | 8770 |