gpt4 book ai didi

ios - 谓词正则表达式中占位符使用的语法是什么?

转载 作者:行者123 更新时间:2023-11-29 00:42:13 24 4
gpt4 key购买 nike

我想在正则表达式中指定我的值,我该怎么做?

我在做什么:

request.predicate = Predicate(format: "entityProperty MATCHES [c] '[^0123]%@'", myValue)

观察结果,我可以说 %@ 被解析为正则表达式字符串中的字符,没有放置任何值来代替它

这里有一些 explanation关于带谓词的正则表达式的使用,但没有关于值占位符的信息

最佳答案

您的解决方案适用于:

  1. myValue 表示有效的正则表达式模式。
  2. myValue 不得包含单引号 (')。

如果 myValue 可能包含单引号,则这将起作用:

request.predicate = NSPredicate(format: "entityProperty MATCHES [c] %@", "[^1234]" + myValue)

如果 myValue 不是正则表达式模式并且可能包含一些元字符,您可能需要编写如下内容:

request.predicate = NSPredicate(format: "entityProperty MATCHES [c] %@", "[^1234]"+NSRegularExpression.escapedPattern(for: myValue))

无论如何,你需要记住:

Single or double quoting variables (or substitution variable strings) cause %@, %K, or $variable to be interpreted as a literal in the format string and so prevent any substitution.

Parser Basics (Predicate Programming Guide)

(我使用了 NSPredicate,因为 Predicate 在 Xcode 8 beta 6 中不可用。)

关于ios - 谓词正则表达式中占位符使用的语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39179774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com