Ios 如何在Objective-C中检测其他单词中的单词

Ios 如何在Objective-C中检测其他单词中的单词,ios,objective-c,Ios,Objective C,到目前为止,我能在短语中发现单词。例如,如果用户键入pork,则将返回名为熟猪肉的项目。但是,如果用户输入pork,像pork*这样的项目将不会被返回 这就是我如何比较数组并找出短语中的单词: for (NSString *allergicITem in matchAgainstArray) { NSString *lowerString = [allergicITem lowercaseString]; if ([theLowerCellString rangeOfStri

到目前为止,我能在短语中发现单词。例如,如果用户键入pork,则将返回名为熟猪肉的项目。但是,如果用户输入pork,像pork*这样的项目将不会被返回

这就是我如何比较数组并找出短语中的单词:

  for (NSString *allergicITem in matchAgainstArray)
{
    NSString *lowerString = [allergicITem lowercaseString];
    if ([theLowerCellString rangeOfString:lowerString].location != NSNotFound)
    {
        cell.textLabel.textColor = [UIColor redColor];
    }

    else
    {
        cell.textLabel.textColor = [UIColor blackColor];
    }
}
我的问题是如何解决这个问题,这样即使在单词pork*中有一个像*这样的小扩展名,它也会检测到这个单词

好的,简单地说,这就是我想要的:

如果一个数组中有单词pork

另一个阵列有工作猪肉*

我想检测并返回pork*这个词

我的代码没有返回pork*,因此我要问这个问题

如果需要进一步澄清,请告诉我

更新:

我有两个由两个独立数组填充的表视图。一个数组填充一个表视图,该表视图中填充了用户不需要的成分,另一个数组填充了一个表视图,该表视图中填充了食品的成分。如果食物中的一种成分与不受欢迎的食物中的一种成分相同,那么它将被标记为红色

因此,如果食品含有以下成分:

水 盐 鸡* 并且用户已填充其不需要的配料表视图,如下所示:

花生 鸡 面筋 当显示配料表视图时,chicken*对象应标记为红色

更新2:

证明我的观点的代码,所有人都可以测试: NSMutableArray*badIng=[[NSMutableArray alloc]init]; NSMUTABLEARRY*总计=[[NSMUTABLEARRY alloc]init]

[badIng addObject:@"Chicken"];
[badIng addObject:@"gluten"];

[totalIng addObject:@"Chicken*"];
[totalIng addObject:@"water"];


for (NSString *badItem in badIng)
{
    NSString *lowerbadString= [badItem lowercaseString];
    NSString *totalString = [totalIng objectAtIndex:0];
    NSString *totalLowerString = [totalString lowercaseString];

    if ([totalLowerString rangeOfString:lowerbadString].location != NSNotFound)
    {
        NSLog(@"Here is the object: %@", badItem);
    }

    else

    {
        NSLog(@"We didn't find it");
    }

}

请按以下方式列出您的清单:

" cooked pork "
" roast beef "
" candied yams "
" porkupine "
注意前导/尾随空格


然后用pork搜索上面的列表。煮熟的猪肉会相配,而茯苓不会相配。

哇,看来我找到了一个更好的方法。因为我使用的是iOS 8,所以我做到了:

if ([theLowerCellString containsString:lowerString])
    {
        cell.textLabel.textColor = [UIColor redColor];
    }

    else
    {
        cell.textLabel.textColor = [UIColor blackColor];
    }

现在它像一个符咒一样工作,并返回我需要的对象。

您输入熟猪肉并搜索猪肉。注意空格。那么波克就不会对波库平有任何影响,如果你允许我举一个人为的例子的话。@Josh Caswell为什么这是一个重复的例子?OP已经在使用副本中的代码。显然,这个问题有一个特定的问题。简单地作为副本关闭不会帮助OP解决代码问题。如果lowerCellString的值为@pork*,则[lowerCellString rangeOfString:@pork]将返回NSRange{.location=0,.length=4}。我可能关错了,但我不明白你的意思。请澄清。该副本不是。清楚地描述您的问题不仅是让他人理解它的必要条件,也是您自己理解它的必要条件。您发布的代码没有显示您所说的问题。我在循环上方添加了一行来打印这两个项目。这里是控制台输出:2014-10-15 01:46:53.954 MatchWordsWithAsterisks[60753:303]在“Chicken*”中寻找“Chicken”[60753:46:53.955 MatchWordsWithAsterisks[60753:303]这里是对象:Chicken 2014-10-15 01:46:53.956 MatchWordsWithAsterisks[60753:303]在“鸡肉*”中寻找“面筋”2014-10-15 01:46:53.956 MatchWordsWithAsterisks[60753:303]我们没有发现它注意到rangeOfString:在“鸡肉*”中找到了“鸡肉”。