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]