2012-08-18 3 views
2

단어 배열 (모든 단어가 NSMutableArray에 있음)이 있습니다. 아래에 표시된대로 단어를 필터링해야합니다.패턴을 사용하는 필터 배열

???? - 네 자로 된 단어 ma? t * - "ma"로 시작하고 네 자로 "t"가있는 단어. z - 문자 "z"가 포함 된 단어 ? n? t? - 두 번째 문자로 "n"을, 네 번째 문자로 "t"로 표시된 다섯 개의 문자 단어. * s * b * - 나머지 문자에서 문자 "s"와 문자 "b"가 포함 된 단어. mouth - "moth"라는 단어가 현재 단어 목록에 존재하면 반환됩니다. t * s? - 문자 "t"로 시작하는 단어는 최소 3 자 이상이고 단어의 두 번째 마지막 문자는 "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; 
} 
를 사용하여 필터의 아래 코드를 사용할 수 있습니다