ios - NSPredicate 正则表达式错误

标签 ios objective-c iphone regex nspredicate

我正在处理文档管理页面。我使用了 NSPredicate 正则表达式,同时从用户输入中获取了 searchBar.text。发生错误(如下图),而输入是中文形式的括号但英文形式正常。如果有人遇到过这个问题?谢谢。
enter image description here

这是我的代码,崩溃发生在最后一行。

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/

相关文章:

ios - uiimageview 角半径在 tableView cellForRowAtIndexPath 中不起作用

ios - 无法推断通用参数 'self'

ios - 将包含 AM/PM 的 NSString 转换为 NSDate

javascript - Touchwipe 集成 - 一页站点脚本

ios - 过滤里面有字典的 NSArray - swift 1.2

javascript - 触摸设备上的 CSS vh 单元问题

ios - sqlite 3 "SQL error ' 内存不足' (7)"objc

适用于 iPhone 的 Objective-C O/R 映射器

iphone - 使用 AVCapture 分别但同时写入视频和音频

iphone - 将常规 xcode 应用程序项目转换为 iOSOpenDev