NSPredicate разбился с вопросительным знаком - PullRequest
0 голосов
/ 19 июля 2011

У меня есть NSP-предикат, который выглядит следующим образом ...

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))'

Кто-нибудь знает, почему это не сработает? Спасибо за помощь> "<</p>

1 Ответ

0 голосов
/ 19 июля 2011

Я не знаком с NSPredicate, но если ? предполагается регулярным выражением, то оно недопустимо. Вопросительный знак является квантификатором, означающим «ноль или один экземпляр предыдущего токена» - и нет токена для повторения. Что вы хотите, чтобы ваше регулярное выражение делать?

Если вы хотите сопоставить буквальный вопросительный знак, вам нужно экранировать его, используя обратную косую черту (регулярное выражение: \?, регулярное выражение: \\?)

...