數據的過濾和獲取--NSPredicate

1.NSPredicate是什麼html

 

NSPredicate 最大的做用就是過濾數據了,它是一種數據過濾的工具類,你可使用相似SQL的查詢語句來獲取符合某些條件的數據web

 

2.一個例子正則表達式

 

NSArray *array = [[NSArray  alloc]initWithObjects:@"beijing",@"shanghai",@"guangzou",@"Guangzou",@"wuhan",@"wuchang", nil];工具

 

NSPredicate *pred = [NSPredicatepredicateWithFormat:@"SELF CONTAINS[cd] 'guang'"];lua

 

NSArray *pred1Arr =[array filteredArrayUsingPredicate:pred];spa

 

 

3.基本語法orm

其中format後的格式,正式如同SQL語句 htm

   self是表明調用方法的對象對象

 

謂詞字符串

    1.字符串相關:BEGINSWITHENDSWITHCONTAINS

 

    例:@"name CONTAIN[cd] 'ang'"   //包含某個字符串

 

    @"name BEGINSWITH[c] 'sh'"     //以某個字符串開頭

 

    @"name ENDSWITH[d] 'ang'"      //以某個字符串結束

BETWEEN:左邊的表達式等於右邊的表達式的值或者介於它們之間。右邊是一個有兩個指定上限和下限的數值的數列(指定順序的數列)。好比,1 BETWEEN { 0 , 33 }

 

    :[c]不區分大小寫 , [d]不區分發音符號即沒有重音符號 , [cd]既不區分大小寫,也不區分發音符號。

    實際應用:NSArray進行過濾

 

 

2.字符串自己:SELF

 

例:@"SELF == 'APPLE'"

 

3.通配符:LIKE

 

例:@"name LIKE[cd] '*er*'"    //*表明通配符,Like也接受[cd].

 

@"name LIKE[cd] '???er*'"

 

比較運算符 > < == >= <= !=

 

例:@"number >= 99"

 

4.正則表達式:MATCHES

 

例:NSString *regex = @"^A.+e$";   //A開頭,e結尾

 

@"name MATCHES %@",regex

 

實際應用:判斷字符串首字母是否爲字母

􏰑5.替換

%@􏰦􏱸􏳲􏳰􏴓􏴔􏴕􏰪􏰥􏴓􏰲􏰕􏱨􏴖􏰵􏱸􏲟􏰵􏴗􏴘􏳲􏰸􏰦􏱸􏳲􏳰􏴓􏴔􏴕􏰪􏰥􏴓􏰲􏰕􏱨􏴖􏰵􏱸􏲟􏰵􏴗􏴘􏳲􏰦􏱸􏳲􏳰􏴓􏴔􏴕􏰪􏰥􏴓􏰲􏰕􏱨􏴖􏰵􏱸􏲟􏰵􏴗􏴘􏳲 是對字符串,日期,數字等對象的替換

%K  􏰦某個類對象的屬性,即屬性鍵

 

 

 

4.使用範圍

 

定義兩個方法來驗證郵箱,利用MATCHES語句

 

+(BOOL)isValidateRegularExpression:(NSString *)strDestination

                      byExpression:(NSString *)strExpression

 

{

    

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", strExpression];

    

    BOOL isSuccess=[predicate evaluateWithObject:strDestination];

    

    return isSuccess;

    

}

 

//驗證email

+(BOOL)isValidateEmail:(NSString *)email {

    //jfkjkfj  @  ddvv  . com

    NSString *strRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{1,5}";

    BOOL rt = [self isValidateRegularExpression:email byExpression:strRegex];

    NSString *string;

 

    

    return rt;

    

}

 

 

參考文章

http://www.cocoachina.com/industry/20140321/8024.html 

相關文章
相關標籤/搜索