NSPredicate与问号坠毁

时间:2011-07-19 08:26:01

标签: iphone regex ios crash nspredicate

我有一个看似这样的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))'

有人知道它为什么不起作用? 感谢所有帮助>“<

1 个答案:

答案 0 :(得分:0)

我不熟悉NSPredicate,但如果?应该是正则表达式,那么它就无效了。问号是一个量词,意思是“前一个令牌的零个或一个实例” - 并且没有重复的标记。你想要你的正则表达式做什么?

如果你想匹配一个文字问号,那么你需要使用反斜杠(正则表达式文字:\?,正则表达式字符串:\\?)来逃避它。

相关问题