2012-08-18 105 views
2

我有一個單詞數組(所有單詞都在NSMutableArray中)。我需要按如下所示過濾單詞。使用模式的過濾器陣列

????? - 任何四個字母的單詞 ma?t * - 任何以字母「ma」開頭並且第四個字母爲「t」的單詞。 z - 任何包含字母「z」的單詞 ?n?t? - 任何五個字母的單詞,其中「n」作爲第二個字母,「t」作爲第四個字母。 * s * b * - 任何包含字母「s」的單詞,然後是其餘字母中的字母「b」。 mouth - 如果它存在於當前單詞列表 t * s中,將返回單詞「蛾」? - 任何以字母「t」開頭的單詞至少有三個字母長,並且單詞中的第二個最後一個單詞有「s」。 * - 返回單詞列表中的所有單詞。

回答

3

您可以使用模式

-(NSMutableArray *)searchByPattern:(NSString *)patternString inputArray:(NSMutableArray *)inputArray 
{ 
    NSLog(@"orginal Array count=%d",[inputArray count]); 
    NSString *match=[NSString stringWithFormat:@"%@",patternString]; 
    NSLog(@"match = %@",match); 
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF like %@",match];  
    NSMutableArray *mArrayFiltered = [[inputArray filteredArrayUsingPredicate:predicate] mutableCopy]; 
    //NSLog(@"mArrayFiltered = %@ count = %d",mArrayFiltered,[mArrayFiltered count]); 
    return mArrayFiltered; 
} 
使用下面的代碼過濾器