NSPredicate匹配字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NSPredicate匹配字符串相关的知识,希望对你有一定的参考价值。
我有一个字符串数组如下:
["Milk","Milkshake","Milk Shake","MilkCream","Milk-Cream"]
如果我搜索“牛奶”,那么结果应该是["Milk","Milk Shake","Milk-Cream"]
,即用文字搜索。
用谓词作为
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"tagName CONTAINS[c] %@",containSearchTerm];
我从上面的数组获得了所有结果。如何使用单词进行匹配?
答案
你需要一个“正则表达式搜索”来匹配单词边界,这是通过谓词中的“MATCHES”来完成的。这是一个例子(基本上从NSPredicate with core data, search word with boundaries in string attribute翻译成Swift):
let searchTerm = "milk"
let pattern = ".*\b(NSRegularExpression.escapedPattern(for: searchTerm))\b.*"
let predicate = NSPredicate(format: "tagName MATCHES[c] %@", pattern)
这将搜索tagName
包含给定搜索词的所有条目,由“单词边界”(模式)包围。
以上是关于NSPredicate匹配字符串的主要内容,如果未能解决你的问题,请参考以下文章
NSPredicate 匹配“NSDatabase 中的任何条目与包含字符串的值”