Дан строковый атрибут вроде этого "Red Globe 21 # Bag SO2 SF White 5L Styro A"
Мне нужно сопоставить «Красный глобус 21 #» (или | и) «Сумка» (или | и) «SO2» (или | и) «SF White».
Следуя образцу, опубликованному dasblinkenlight, NSPredicate Exact Match with String
Я пытался найти правильную комбинацию для этого RegEx
NSString *str = @"Globe";
NSMutableString *arg = [NSMutableString string];
[arg appendString:@"\\s*\\b"];
[arg appendString:str];
[arg appendString:@"\\b\\s*\\w*"];
NSPredicate *p = [NSPredicate predicateWithFormat:@"SELF matches[c] %@", arg];
NSArray *a = [NSArray arrayWithObjects:@"Red Globe 21# Bag SO2 SF White 5L Styro A ", @"test", @"Test", @"TEST", nil];
NSArray *b = [a filteredArrayUsingPredicate:p];
NSLog(@"Result ;%@",b);`
Но для меня это не работает, я буду признателен за вашу помощь.
1 ответ
Если я понимаю, что вы имеете в виду, я не уверен, что, по вашему мнению, регулярные выражения могут сделать для вас в первую очередь.
У вас есть несколько разных точных струн. Вы хотите иметь возможность выбрать подмножество этих строк и сопоставить каждый элемент, который содержит строки в этом подмножестве, верно?
Итак, вам просто нужно соединить И вместе точные совпадения подстроки: "SELF contains %@ && SELF contains %@"
.
Похожие вопросы
Связанные вопросы
Новые вопросы
objective-c
Этот тег следует использовать только для вопросов, касающихся функций Objective-C или зависящих от кода на языке. Теги [cocoa] и [cocoa-touch] следует использовать, чтобы узнать о фреймворках или классах Apple. Используйте связанные теги [ios], [macos], [apple-watch] и [tvos] для проблем, характерных для этих платформ.
(or|and)
? Какой должна быть соответствующая группа (группы) для этой строки образца? Можете ли вы привести нам еще один пример, который не является идеальным, и рассказать, что вы хотите от него?