NSPredicate过滤器对象whoes字符串是BEGINSWITH特殊字符

时间:2016-12-27 07:39:19

标签: ios objective-c nsarray nspredicate nscompoundpredicate

我有一个场景,我希望过滤NSArray具有NSDictionary对象且每个对象都有密钥name的对象。我想过滤那些name键值应以特殊字符或0-9,~!@#$%^&*()_等数字字符开头的对象数。

我试图在谷歌上找到这个,但没有得到适当的解决方案。我使用了下面的谓词,但无法获得正确的对象。

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

1 个答案:

答案 0 :(得分:1)

BEGINSWITH运算符不支持正则表达式。您可以使用谓词中的以下内容检查它是否以非字母字符开头:

 NSString *myRegex = @"[A-Za-z]*";
 NSPredicate *myTestPred = [NSPredicate predicateWithFormat:@"NOT (SELF MATCHES %@)", myRegex]