Вы можете использовать оператор «MATCHES» для поиска по регулярному выражению, например:
NSPredicate * p = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", @"[a-z]+-.*"];
NSArray * s = [NSArray arrayWithObject:@"abc-123"];
NSLog(@"%@", [s filteredArrayUsingPredicate:p]);
Однако есть предостережение.Регулярное выражение сопоставляется по всей строке.Поэтому, если вы хотите найти все элементы, начинающиеся с 3 букв, ваше выражение не может быть просто «[az] {3}».Это должно быть "[az] {3}. *".Первое не удастся для всего, что не 3 буквы, в то время как второе будет соответствовать всему, что по крайней мере 3 буквы.
Мне потребовалось время, чтобы понять это ...