Итак, я пытаюсь выполнить поиск по основным данным. Скажем, у моего CoreData
есть два поля: NSString
(мы назовем их foo & бар). Пользователь дает указание, какое поле искать и строку поиска. Сейчас я использую этот код:Поиск CoreData с использованием регулярных выражений и специальных символов
NSString *format = [NSString stringWithFormat:@"(%@ matches[c] %@)", field, @"%@"];
// Double-escape that slash
NSString *pattern = [NSString stringWithFormat:@".*\\b%@.*", partialString];
NSPredicate *predicate = [NSPredicate predicateWithFormat:format, pattern];
[fetchRequest setPredicate:predicate];
Поле передается как «foo» или «bar». Частичная строка - это строка поиска. Если bar содержит «Grand Poobah», я хочу, чтобы он соответствовал, когда «Poo» - это строка запроса (но не тогда, когда она «oobah», поэтому у меня есть \ b в регулярном выражении).
Но вопрос у меня есть, если кто-то дает запрос о «Poo (» он выходит из строя, потому что он получает интерпретируется как часть regex
.
Это лучший маршрут, чтобы просто избежать все специальные символы в partialString перед тем ? построение рисунка Или есть какой-то другой способ, которым я должен строить предикат
Спасибо. Использование stringWithFormat не понравилось, но когда я попытался конденсировать его, он все время рушился. Но в тот момент мне не хватало% K. – bryan
bro этот код соответствует только первым символам, а что же остальное может у вас, пожалуйста, помогите мне ... мне нужно найти символ из строки –