我正在处理文档管理页面。我使用了 NSPredicate
正则表达式,同时从用户输入中获取了 searchBar.text
。发生错误(如下图),而输入是中文形式的括号但英文形式正常。如果有人遇到过这个问题?谢谢。
这是我的代码,崩溃发生在最后一行。
NSString * searchStr = [NSString stringWithFormat:@"fileName like[cd] \'*%@*\'",searchDisplayController.searchBar.text];
NSPredicate *predicate = [NSPredicate predicateWithFormat:searchStr];
self.fileArrayAfterPre = [[NSMutableArray alloc] initWithArray:[fileArr filteredArrayUsingPredicate:predicate]];
最佳答案
LIKE:用在通配符表达式中。
CONTAIN:根据您的问题,您应该使用 contain[cd],因为它将文件与搜索文本相匹配。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"fileName CONTAINS[cd] %@",searchDisplayController.searchBar.text];
self.fileArrayAfterPre = [[NSMutableArray alloc] initWithArray:[fileArr filteredArrayUsingPredicate:predicate]];
关于ios - NSPredicate 正则表达式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39160394/