2012-12-05 89 views
2

我想知道是否可以過濾包含多個單詞集的數組以獲取僅包含以謂詞開頭的單詞的過濾數組:使用謂詞匹配由特定字符串開始的單詞集

我想一個例子由他本人講:

陣:

  • 青椒
  • 白葡萄

濾波陣列爲@ 「PE」

  • 青椒

目前我正在申請一個謂詞類似如下:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[c] %@",searchText]; 
    NSArray *tempArray = [[self.searchContent objectAtIndex:INGREDIENT] filteredArrayUsingPredicate:predicate]; 
    [self.ingredientsFiltered addObjectsFromArray:tempArray]; 

但是這會給我兩個綠色胡椒和白葡萄作爲@「pe」也是胡椒的子串。有沒有推薦的方法來實現這一點?

+1

如何的' 「SELF BEGINSWITH PE」'和組合' 「SELF包含並[c]%@」,@ 「PE」'其由'OR接合'? – iDev

回答

2

與此嘗試,

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES[c] %@", [NSString stringWithFormat: @".*\\b%@.*",searchText]]; 
+0

不,它不會工作,因爲你在整個字符串上應用謂詞,例如@「青椒」而不是字符串中的單詞 – tiguero

+0

我的問題與此類似:http://stackoverflow.com/questions/11767936/find- substring-in-sentence-only-if-word-starts-with-substring但是這不是sastisfying – tiguero

+0

更新了答案。現在檢查。 – iDev

相關問題