iOS 확장 - 정규 연산

2801 단어
1. 정규 연산 의 의미
regular expression 은 문자열 이 일치 하 는 패턴 을 설명 합 니 다. 문자열 에 피 드 문자열 이 포함 되 어 있 는 지, 일치 하 는 하위 문자열 을 교체 하거나 특정한 문자열 에서 특정한 조건 에 맞 는 하위 문자열 을 꺼 내 는 지 확인 할 수 있 습 니 다. iOS 에 서 는 문자열 이 규칙 에 맞 는 지 확인 하 는 데 사 용 됩 니 다.
2. 정규 표현 식 을 자주 사용 합 니 다 (필요 에 맞 는 정규 표현 식 을 직접 쓰 려 면 4 의 기호 적 의 미 를 알 아야 합 니 다)
(1). 사용자 이름
"^[a-zA-Z][a-zA-Z0-9_]{5,15}$" ( 6-16          ,            ) 
[a-zA-Z]          ;
[a-zA-Z0-9]               ; 
{5,15}    5 15   [a-zA-Z0-9]   

(2). 비밀번호
"^(?![0-9]{0,24})[\\S]{6,24}$"  ( 6-24 ,      ,      )
(?![0-9]{0,24}$)     24       
\S           (    ,  ,tab       )
[\\S]{6,24}   6 24        


핸드폰 번호
"^1[3|4|5|7|8][0-9]{9}$" (      ,        )
1       1
[3|4|5|7|8]        3,4,5,6,7,  8 
[0-9]{9}   9     

(4).email
"^[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)*@[a-zA-Z0-9_-]+.com(.cn)?$"  (      @    .com         . @    .com.cn )

[a-zA-Z0-9_-]+   1               
(.[a-zA-Z0-9_-]+)*    0          .                      

3. 정규 iOS 에서 의 응용
문자열 이 요구 에 부합 되 는 지 확인 합 니 다.
/**
 *                
 *
 *  @param string         
 *  @param regex       
 *
 *  @return     YES     NO
 */
- (BOOL) predicateString:(NSString *)string WithRegularExpreess:(NSString *)regex {
    // 1、    
    NSPredicate *predicateRe = [NSPredicate predicateWithFormat:@"self matches %@", regex];
    // 2、     
    BOOL result = [predicateRe evaluateWithObject:string];
    return result;
}

 :           (6-24 ,      ,      )    

 NSString *regulerExp = @"^(?![0-9]{0,24}$)[\\S]{6,24}$";
 BOOL result = [self predicateString:_textField.text WithRegularExpreess:regulerExp];
    

4. 자주 사용 하 는 기호 즉 의미 (아래 의 몇 가지 기호의 의 미 를 이해 하면 일반적인 정규 연산 은 모두 쓸 수 있다)
^                         
$             
 
 
[]               
       : ^[a-z]:         [A-Z]:         [0-9]:     
()          
       :  ^([a-z]{4})([0-9]{3})     4                    ,abcd332 adfd453  
 
 
{m}   m                            
       : ^[a-z]{3}                     add bcd ade  
{m,}       m                    
       : ^[a-z]{3,}                     , acd ,bcd  , adsf, sadfasdfasdf,  
{m,n} m n                          
       : ^[a-z]{3,5}    3 5             , adb adsb asdfd  
*       0            
       :^[a-z]*    0              
?       0            
+                    
  :               ,    m ,n      ,n > m
 
 
[^ ]  ^ []        
       : ^[^a-z]                
|      
       : ^[a-z]|[0-9]              
 
?=          ,                : (?= [0-9]{0-7})    7     
?!          ,                 : (?! [0-9]{0-7})    7      

확장 링크:http://www.runoob.com/regexp/regexp-intro.html

좋은 웹페이지 즐겨찾기