정규 표현 식 의 초기 연습
먼저 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 회 일치 합 니 다. $
= = > 종료그리고 자신 에 게 두 가지 작은 시 도 를 한다.
NSString *amountRegex =@"^[0-9]+(\\.[0-9]{1,2})?$";
그러나 이 같은 결함 은 하나 있 지만 1 위 는
0
, 2 위 는 .
가 아 닐 때 추가 로 판단 해 야 한다.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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.