这必须是重复的。但是有这么多 NSPredicate 问题,我找不到合适的。
我有一个包含compositeName
字段的核心数据对象列表。像“艾米莉布朗特”这样的名字可能在那里。我想使用一个搜索列表,NSPredicate
它可以让我搜索“Em”,也可以搜索“Bl”,然后让这个名字出现在获取的结果中。
这一定非常容易,但正如你猜想的那样,我没有看到它。我对带有正则表达式的 NSPredicate 的功能失调尝试如下所示:
[NSPredicate predicateWithFormat:@"compositeName MATCHES[cd] '.*(?<=^|\\s)%@.*'", query];
我对这个正则表达式的想法是:
- 之前的任意数量的字符
- 负后视空格或开头
- 查询
- 之后的任意数量的字符
但它不起作用。我没有得到任何结果。我该如何解决?
PS 如果有一个没有正则表达式的 NSPredicate 解决方案也适合我的目的。