如何使`NSPredicate`忽略搜索中的某些字符

时间:2018-05-09 13:07:09

标签: swift core-data nspredicate

考试:

我将V«003»文本存储在核心数据id属性中。

如果我将003V003传递给NSPredicate,则应批准搜索,但由于«»个字符{{1}无法找到该字段。

我如何忽略NSFetchRequest中的«»字符?

NSPredicate是否有Regular Expression方式?

1 个答案:

答案 0 :(得分:1)

使用正则表达式非常简单,问号表示可选字符。

let pattern = "V«?003»?"
NSPredicate(format: "id MATCHES %@", pattern)

修改 为了修复用户输入,我在每个用户输入字符之间添加了«?»?

func generatePattern(item: String) -> String {
    var str = ""
    for st in item {
        str.append(contentsOf: "«?»?")
        str.append(st)
    }
    str.append(contentsOf: "«?»?")
    return String(str)
}