草庐IT

userInputtedKey

全部标签

ios - 当使用 NSPredicate MATCHES 获取 CoreData 实体时,用户输入的键会破坏正则表达式

我们使用下面的NSPredicate从CoreData中获取实体:[NSPredicatepredicateWithFormat:@"nameMATCHES[cd]%@",[NSStringstringWithFormat:@"^%@.*|.*[-\\s.@]%@.*",userInputtedKey,userInputtedKey]];例如,如果userInputtedKey仅包含字母和数字,则一切顺利。但是,如果userInputtedKey本身包含正则表达式的保留符号,那么,匹配将失败甚至崩溃。例如userInputtedKey为@"("会导致崩溃:***Terminatinga