【问题标题】:Search complete phrases or words in array of NSStrings在 NSStrings 数组中搜索完整的短语或单词
【发布时间】:2012-10-01 21:02:52
【问题描述】:

我正在尝试找到在数组中搜索整个短语或单词的方法。但它不起作用。例如:

我有一个 NSMutableArray 有 2 个元素:
元素 1 有一个键 desc:“另一个元素的示例”
元素 2 有一个键 desc:“另一个元素的另一个元素的示例”

我只想搜索包含“其他”一词的元素。

如果我使用:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"desc like '*other*'"];

结果包括这两个元素。

如果我搜索“* other *”,我会错过以“other”开头的描述(因为 blanc)。

有没有人知道搜索确切单词或短语的功能,尽管它位于文本的开头、结尾、中间,尽管有一个“。”还是“,”还是“'”?

【问题讨论】:

    标签: objective-c search match nspredicate


    【解决方案1】:

    你需要的是一个完整的正则表达式匹配,matches 提供了这个。尝试(未经测试):

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"desc matches '\\bother\\b'"];
    

    r.e. \b 匹配单词边界(上面的双反斜杠,因为它是 Objective-C 和正则表达式中的转义字符......)。请参阅 Apple's docs for matches 并点击 ICU 正则表达式指南的链接。

    【讨论】:

      【解决方案2】:

      我认为这种常规模式匹配会起作用:

      NSPredicate *predicate = [NSPredicate predicateWithFormat:@"desc matches %@", @".*\\bother\\b.*"];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-30
        相关资源
        最近更新 更多