我有一个看似这样的NSPredicate ......
NSPredicate *predicate = [NSPredicate predicateWithFormat : @"keyword MATCHES[c] %@", theKeyword];
,其中
theKeyword = @"?";
谓词因以下异常而崩溃......
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't do regex matching, reason: (Can't open pattern U_REGEX_RULE_SYNTAX (string D;rdz;oirnodzirngzdorngzdorngzdrjgnz@dorjn
Isdjfij
Fisdjfisj
Jsifjsijfs
Ifjifjs
Isjfidsj
Fjisjfi
, pattern ?, case 1, canon 2))'
有人知道它为什么不起作用? 感谢所有帮助>“<
答案 0 :(得分:0)
我不熟悉NSPredicate
,但如果?
应该是正则表达式,那么它就无效了。问号是一个量词,意思是“前一个令牌的零个或一个实例” - 并且没有重复的标记。你想要你的正则表达式做什么?
如果你想匹配一个文字问号,那么你需要使用反斜杠(正则表达式文字:\?
,正则表达式字符串:\\?
)来逃避它。