创建一个带有换行符的 NSPredicate 作为字符串的一部分

Posted

技术标签:

【中文标题】创建一个带有换行符的 NSPredicate 作为字符串的一部分【英文标题】:Create an NSPredicate with a line break as part of a string 【发布时间】:2021-08-03 16:50:24 【问题描述】:

我需要创建一个谓词来查找以下字符串:

"fred\n5" 其中 \n 是换行符。

至少,这是读取元数据时返回的字符串

【问题讨论】:

【参考方案1】:

你可以用正则表达式来做到这一点

let string = """
    fred
    5
    """

let predicate = NSPredicate(format: "self MATCHES %@", "fred\\n5")
predicate.evaluate(with: string) // true

也可以使用fred(\\n|\\r)5 模式,它同时考虑换行返回。


或者删除换行符(实际上是任何空白和换行符)

let trimmedString = string.replacingOccurrences(of: "\\s", with: "", options: .regularExpression)

【讨论】:

谢谢。这印证了我的想法。我能问你是否可以给我更多关于如何解开这个问题的指示:NSPredicate(format: "%K MATCHES %@", NSMetadataItemFinderTagsKey, "\\w+\\\n\\d")。我想要的是所有包含最后一个数字字符的 URL 任何带有尾随数字字符的都是.+\\d$

以上是关于创建一个带有换行符的 NSPredicate 作为字符串的一部分的主要内容,如果未能解决你的问题,请参考以下文章

带有 NSNumber 的 NSArray 的 NSPredicate(核心数据)

带有搜索栏的 cell.accessoryType 不影响 NSPredicate

带有正则表达式捕获的 NSPredicate 总是得到 0 个结果

使用 NSPredicate 解析带有变量的公式

将带有换行符的固定长度文本文件作为属性值之一读入 JavaRDD

带有 NSPredicate 的 Fetchrequest 不返回正确的值