NSPredicate для объектов фильтра, строка которых начинается с специальных символов

У меня есть один сценарий, где я хочу отфильтровать объекты NSArray у кого есть NSDictionary объект и каждый объект имеют ключ name, Я хочу фильтровать с таким количеством объектов, чьи name значение ключа должно начинаться со специальных символов или числовых символов, таких как 0-9,~!@#$%^&*()_ и т.п.

Я пытаюсь найти это в Google, но не получаю правильное решение. Я использовал приведенный ниже предикат, но не смог получить правильные объекты.

NSPredicate *predicate=   [NSPredicate predicateWithFormat:@"self.name BEGINSWITH %@",@"[^0-9]+.*"];

1 ответ

Решение

BEGINSWITH Оператор не поддерживает регулярные выражения. Вы можете проверить, начинается ли он с не алфавитного символа, используя следующее в предикате:

 NSString *myRegex = @"[A-Za-z]*";
 NSPredicate *myTestPred = [NSPredicate predicateWithFormat:@"NOT (SELF MATCHES %@)", myRegex]
Другие вопросы по тегам