NSPredicate и NSRegularExpression - PullRequest
       12

NSPredicate и NSRegularExpression

5 голосов
/ 13 июля 2011

Это должно быть действительно просто, но это не хочет работать. Я хочу получить CoreData, используя NSPredicate, который использует NSRegularExpression. Я хотел бы найти myString или myString_10 (10 - любое возможное число, например, myString_333).

Это мой код:

NSString *regexString = [NSString stringWithFormat:@"%@_[0-9]+", value];
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regexString
                                                                           options:NSRegularExpressionSearch                                  
                                                                             error:&error];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(label = %@) OR (label = %@)", value, regex];

значение - строка, а метка - ключ сущности.

Если значением является «Новый проект», NSFetchRequest возвращает массив с одним объектом, хотя у меня в модели есть две метки («Новый проект» и «Новый проект_1»), которые необходимо извлечь.

Что я делаю не так?

1 Ответ

3 голосов
/ 13 июля 2011

Регулярное выражение должно быть NSString или частью предиката при использовании. См. Регулярные выражения в Руководстве по программированию предиката . Попробуйте использовать MATCHES вместо = и regexString вместо regex. Вы можете ссылаться на Регулярные выражения ICU для шаблонов, если у вас есть какие-либо проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...