我有一个场景,我希望过滤NSArray
具有NSDictionary
对象且每个对象都有密钥name
的对象。我想过滤那些name
键值应以特殊字符或0-9,~!@#$%^&*()_
等数字字符开头的对象数。
我试图在谷歌上找到这个,但没有得到适当的解决方案。我使用了下面的谓词,但无法获得正确的对象。
NSPredicate *predicate= [NSPredicate predicateWithFormat:@"self.name BEGINSWITH %@",@"[^0-9]+.*"];
答案 0 :(得分:1)
BEGINSWITH
运算符不支持正则表达式。您可以使用谓词中的以下内容检查它是否以非字母字符开头:
NSString *myRegex = @"[A-Za-z]*";
NSPredicate *myTestPred = [NSPredicate predicateWithFormat:@"NOT (SELF MATCHES %@)", myRegex]