Objective c NSPredicate正则表达式以匹配同一属性上的多个段

Objective c NSPredicate正则表达式以匹配同一属性上的多个段,objective-c,regex,xcode,nspredicate,Objective C,Regex,Xcode,Nspredicate,给定一个字符串属性,如“红色地球21#白色5L Styro a” 我需要用“红地球21”(或|和)“袋子”(或|和)“二氧化硫”(或|和)“SF白色”来匹配 遵循dasblinkenlight发布的示例 我想找出这个正则表达式的正确组合 NSString *str = @"Globe"; NSMutableString *arg = [NSMutableString string]; [arg appendString:@"\\s*\\b"]; [arg appendSt

给定一个字符串属性,如“红色地球21#白色5L Styro a”

我需要用“红地球21”(或|和)“袋子”(或|和)“二氧化硫”(或|和)“SF白色”来匹配

遵循dasblinkenlight发布的示例

我想找出这个正则表达式的正确组合

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);`

但是这对我没用,我会感谢你的帮助。

如果我理解你的意思,我不确定你认为regexps首先能为你做什么

你有一些不同的精确字符串。您希望能够选择这些字符串的子集,并匹配该子集中包含这些字符串的每个元素,对吗


所以,您只需要将精确的子字符串匹配组合在一起:
“SELF contains%@&&SELF contains%@

这是什么意思?您希望该样本字符串的匹配组是什么?你能不能再举一个不完美的例子,告诉我们你想要的是什么?比如在另一个字符串“Flame 19#Pocket SO2 J.a.P.White 5L Styro a”上,当匹配“Flame 19#”时,我需要返回所有“Flame 19#记录,但如果给出了“Flame 19#”和“Pocket”记录,应获取包含该组合的所有记录,从而缩小结果范围。关于Or |,我的意思是任何一个片段都可以单独给出或组合给出。谢谢——这正是我想要的——谢谢