정규 표현 식 의 초기 연습

5566 단어
지금까지 정규 표현 식 은 인터넷 에서 직접 복사 해서 사 용 했 지만 어떻게 썼 는 지 몰 랐 습 니 다. 오늘 마침 잘못 쓴 부분 이 있어 서 조금 알 아 보기 로 했 습 니 다. 적어도 이렇게 쓰 는 것 이 틀 렸 는 지 알 아 보기 로 했 습 니 다.
먼저 iOS 에서 자주 사용 하 는 정규 표현 식 을 보고 술어 로 판단 합 니 다.
 NSString *stringRegex = @"^[0-9]*$";
//  NSString *stringRegex = @"^[A-Za-z]+$";
//  NSString *stringRegex = @"^[A-Za-z0-9]+$";
//       
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", stringRegex];
BOOL result = [predicate evaluateWithObject:testString];

1. 정규 표현 식 에서 자주 사용 하 는 문법:
비 인쇄 문자\cx x 가 가리 키 는 제어 문자 와 일치 합 니 다.예 를 들 어 \ cM 은 control - M 또는 리 턴 문자 와 일치 합 니 다.x 의 값 은 A - Z 또는 a - z 중 하나 여야 합 니 다.그렇지 않 으 면 c 를 원래 의 'c' 문자 로 간주 합 니 다.\f 페이지 바 꾸 기 문자 와 일치 합 니 다.등가
줄 바 꿈 문자 와 일치 합 니 다.등가\r 리 턴 부적 과 일치 합 니 다.등가\s 빈 칸, 탭 문자, 페이지 바 꾸 기 등 모든 공백 문자 와 일치 합 니 다.등가\S 공백 문자 와 일치 합 니 다.등가\t 탭 문자 와 일치 합 니 다.등가\v 수직 탭 문자 와 일치 합 니 다.등가\d 숫자 문자 와 일치 합 니 다.등가\D 비 숫자 문자 와 일치 합 니 다.등가\w 밑줄 친 모든 단어 문자 와 일치 합 니 다.'[A - Za - z0 - 9]' 와 같다.\W 단어 가 아 닌 문자 와 일치 합 니 다."[^ A - Za - z0 - 9]" 와 같 습 니 다.
특수 문자$ 입력 문자열 의 끝 위치 와 일치 합 니 다.RegExp 대상 의 Multiline 속성 을 설정 하면 $도 '또는' \ r '와 일치 합 니 다.$문자 자체 와 일치 하려 면 $를 사용 하 십시오.( ) 키 표현 식 의 시작 과 끝 위 치 를 표시 합 니 다.하위 표현 식 은 나중에 사용 할 수 있 도록 가 져 올 수 있 습 니 다.이 문자 들 과 일치 하려 면 사용 하 십시오.* 앞의 하위 표현 식 과 0 회 또는 여러 번 일치 합 니 다.* 문자 와 일치 하려 면 * 를 사용 하 십시오.+ 앞의 하위 표현 식 과 한 번 또는 여러 번 일치 합 니 다.+ 문자 와 일치 하려 면 + 를 사용 하 십시오.. 줄 바 꿈 자 를 제외 한 모든 문자 와 일치 합 니 다.[ 괄호 식 의 시작 을 표시 합 니 다.? 앞의 하위 표현 식 과 0 번 또는 한 번 일치 하거나 탐욕 이 아 닌 한정 부 를 가리 킵 니 다."" 다음 문 자 를 특수 문자 나 원 의 문자 로 표시 하거나 뒤로 참조 하거나 8 진 전의 문자 로 표시 합 니 다.예 를 들 어 'n' 일치 문자 'n'.줄 바 꿈 문자 와 일치 합 니 다.시퀀스 '\' 는 일치 합 니 다 ',' ('는 일치 합 니 다' ('). ^ 는 입력 문자열 의 시작 위치 와 일치 합 니 다. 괄호 식 에서 사용 하지 않 는 한 이 문자 집합 을 받 아들 이지 않 음 을 표시 합 니 다. ^ 문자 자체 와 일치 하려 면 ^ 를 사용 하 십시오. { 한정 문자 테이블 의 시작 을 표시 합 니 다. {와 일치 하려 면 {를 사용 하 십시오. |두 항목 사이 의 선택 을 표시 합 니 다. 일치 하려 면 | 을 사용 하 십시오.
한정 부호* 앞의 하위 표현 식 과 0 번 또는 여러 번 일치 합 니 다. 예 를 들 어 zo * 는 'z' 와 'zoo' 를 일치 시 킬 수 있 습 니 다. * 는 {0,} 과 같 습 니 다. + 앞의 하위 표현 식 과 한 번 또는 여러 번 일치 합 니 다. 예 를 들 어 'zo +' 는 'zo' 와 'zoo' 를 일치 시 킬 수 있 지만 'z' 와 일치 하지 않 습 니 다. + 는 {1,} 과 같 습 니 다. ? 앞의 하위 표현 식 과 0 번 또는 한 번 일치 합 니 다. 예 를 들 어 'do (es)?'"do" 또는 "does" 의 "do" 와 일치 할 수 있 습 니 다.? 같은 값 은 {0, 1} 입 니 다. {n} n 은 마이너스 정수 입 니 다. 정확 한 n 번 과 일치 합 니 다. 예 를 들 어 'o {2}' 은 'Bob' 의 'o' 와 일치 할 수 없 지만 'food' 의 두 o 와 일치 할 수 있 습 니 다. {n,} n 은 마이너스 정수 입 니 다. 적어도 n 번 은 일치 합 니 다. 예 를 들 어 'o {2,}' 은 'Bob' 의 'o' 와 일치 할 수 없 지만 'fooood' 와 일치 할 수 있 습 니 다.'o {1,}' 은 'o +' 와 같 습 니 다. 'o {0,}' 은 'o *' 와 같 습 니 다. {n,m} m 와 n 은 모두 마이너스 정수 가 아 닙 니 다. 그 중에서 n < = m. 최소 n 회 일치 하고 최대 m 회 일치 합 니 다. 예 를 들 어 'o {1, 3}' 은 'foooood' 의 앞 세 o 와 일치 합 니 다. 'o {0, 1}' 은 'o?' 와 같 습 니 다. 쉼표 와 두 수 사이 에 빈 칸 이 있 으 면 안 됩 니 다.
2. 예 를 들 어 작은 시도
2 - 1 、 숫자 만 입력 가능:
NSString *stringRegex = @"^[0-9]*$";
^ = = = > 시작 [] = = > 표현 식 안 0-9 = = > 구간 범위 * = = > 앞 표현 식 $ 과 일치 = = > 끝
2 - 2 、 최소 n 개 수 를 입력
NSString *stringRegex = @"^\\d{n,}$";
^ = = > 시작 '= = = > 다음 문 자 를 특수 문자 나 원 의 문자 로 표시 하거나 뒤로 인용 하거나 8 진 전의 문자 \d = = = > 숫자 문자 와 일치 합 니 다. 등가 [0 - 9] {n,} = = = > n 은 비 마이너스 정수 입 니 다. 최소 n 회 일치 합 니 다. $ = = > 종료
그리고 자신 에 게 두 가지 작은 시 도 를 한다.
  • 흔히 볼 수 있 는 금액 숫자 (두 개의 소수, 1.00 포함)
  • NSString *amountRegex =@"^[0-9]+(\\.[0-9]{1,2})?$";
    

    그러나 이 같은 결함 은 하나 있 지만 1 위 는 0, 2 위 는 . 가 아 닐 때 추가 로 판단 해 야 한다.
  • 비밀 번 호 는 숫자 와 영어 만 포함 하고 문자열 의 길 이 는 6 ~ 20 글자 사이
  • 입 니 다.
    NSString *passwordRegex =@"^[A-Za-z0-9]{6,20}$";
    

    그러나 진정한 향상 테스트 가 필요 하 다 면 온라인 정규 표현 식 테스트 를 통 해 연습 할 수 있 습 니 다.
    3. 총화
    현재 우리 iOS 의 정규 표현 식 은 간단 한 정규 표현 식 을 자주 사용 합 니 다. 기본적으로 우리 의 수 요 를 만족 시 킬 수 있 습 니 다. 복잡 한 표현 식 이 깊이 들 어가 야 하 는 지 여 부 는 개인 에 게 달 려 있 습 니 다.
    PS: 자신 이 사용 하 는 것:
    //     
    NSString *stringRegex = @"^[0-9]*$"; 
    //     
    NSString *stringRegex = @"^[A-Za-z]+$"; 
    //        
    NSString *stringRegex = @"^[A-Za-z0-9]+$"; 
    //   
    NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"; 
    //   (                 )
    NSString *phoneRegex = @"^1[34578]\\d{9}$";
    //     
    NSString *idRegex = @"^(^[1-9]\\d{7}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])\\d{3}$)|(^[1-9]\\d{5}[1-9]\\d{3}((0\\d)|(1[0-2]))(([0|1|2]\\d)|3[0-1])((\\d{4})|\\d{3}[Xx])$)$";
    //   
    NSString *chRegex = @"^[\u4e00-\u9fa5]{0,}$";
    

    기타 더 많은 것 은 정규 표현 식 을 참고 할 수 있 습 니 다.
    비고:
    http://www.cnblogs.com/zxin/archive/2013/01/26/2877765.html http://www.runoob.com/regexp/regexp-tutorial.html http://www.isnowfy.com/regular-expression-negative/ http://www.jianshu.com/p/ea10003d224a

    좋은 웹페이지 즐겨찾기