nik*_*dia 2 objective-c nsstring nspredicate ios swift
我有一个字符串数组,如下所示:
["Milk","Milkshake","Milk Shake","MilkCream","Milk-Cream"]
Run Code Online (Sandbox Code Playgroud)
如果我搜索“牛奶”,那么结果应该是["Milk","Milk Shake","Milk-Cream"]按词搜索。
谓词为
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"tagName CONTAINS[c] %@",containSearchTerm];
Run Code Online (Sandbox Code Playgroud)
我从上面的数组中得到所有结果。如何使用单词进行匹配?
您需要一个“正则表达式搜索”来匹配单词边界,这是在谓词中使用“MATCHES”完成的。这是一个示例(本质上是从带有核心数据的 NSPredicate翻译而来,在字符串属性中搜索带有边界的单词到 Swift):
let searchTerm = "milk"
let pattern = ".*\\b\(NSRegularExpression.escapedPattern(for: searchTerm))\\b.*"
let predicate = NSPredicate(format: "tagName MATCHES[c] %@", pattern)
Run Code Online (Sandbox Code Playgroud)
这将搜索tagName包含给定搜索词的所有条目,并被“单词边界”(\b模式)包围。
| 归档时间: |
|
| 查看次数: |
573 次 |
| 最近记录: |