CoreData NSPredicate的字符串比較

在使用過程中有這么一個需求,需要剔除實體某個屬性的值不包含某個字符串,查資料后代碼如下:

request.predicate= [NSPredicate predicateWithFormat:@"!(sessionId CONTAINS[cd] %@)",@"nice"];

如上:sessionId這個屬性不包含nice這個字符串。

NSPredicate字符串比較的其他語法:

1、BEGINSWITH:左邊的表達式以右邊的表達式作為開始。

(例:request.predicate= [NSPredicate predicateWithFormat:@"(屬性 BEGINSWITH[cd] %@)",@"開頭的字符串"];)

2、CONTAINS:左邊的表達式包含右邊的表達式。

(例:request.predicate= [NSPredicate predicateWithFormat:@"(屬性 CONTAINS[cd] %@)",@"包含的字符串"];)

3、ENDSWITH:左邊的表達式以右邊的表達式作為結束。

(例:request.predicate= [NSPredicate predicateWithFormat:@"(屬性 ENDSWITH[cd] %@)",@"結束的字符串"];)

4、LIKE:左邊的表達式等于右邊的表達式:?和*可作為通配符,其中?匹配1個字符,*匹配0個或者多個字符。

(例1:request.predicate= [NSPredicate predicateWithFormat:@"(屬性 LIKE[cd] %@)",@"zsz_???_iOS"]; // 屬性等于zsz_開頭中間,3個任意字符,_iOS結尾的字符串)

(例2:request.predicate= [NSPredicate predicateWithFormat:@"(屬性 LIKE[cd] %@)",@"zsz_*_iOS_*"]; // 屬性等于zsz_開頭中間+任意字符+_iOS+任意字符的字符串)

5、MATCHES:左邊的表達式根據ICU v3(更多內容請查看ICU User Guide for Regular Expressions)的regex風格比較,等于右邊的表達式。

詳細請看參考鏈接:

1、http://nshipster.cn/nspredicate/

2、http://perfectshen.github.io/2016/03/13/NSPredicate/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 轉載自:http://www.cocoachina.com/ios/20160111/14926.html 1、大...
    一筆春秋閱讀 2,861評論 0 2
  • 首先,我們需要知道何謂謂詞,讓我們看看官方的解釋:The NSPredicate class is used to...
    旭日飛揚閱讀 1,538評論 0 0
  • 前言 有時我們需要在一大段長文本中過濾出我們需要的字段,或者檢驗該文本是否符合要求(該文本是否是郵箱,鏈接,電話號...
    進無盡閱讀 981評論 0 1
  • NSPredicate是一個Foundation類,它指定數據被獲取或者過濾的方式。它的查詢語言就像SQL的WHE...
    Dean麥兜閱讀 380評論 0 2
  • 漢華手陶——老少皆宜的軟陶制作 軟陶是一種個性化的藝術創作,可以提高人們的手腦協調能力,色彩感知,專注力,觀察力,...
    漢華手陶閱讀 362評論 0 0