[英]What is syntax for placeholder usage in regular expression in Predicate?
我想在正則表達式中指定我的值,我該怎么做?
我在做什么:
request.predicate = Predicate(format: "entityProperty MATCHES [c] '[^0123]%@'", myValue)
觀察結果,我可以說%@被解析為正則表達式字符串中的字符,而不是放置任何值
這是對帶謂詞的正則表達式使用的一些解釋 ,但沒有有關值的占位符的信息
您的解決方案適用於:
myValue
表示有效的正則表達式模式。 myValue
不能包含單引號( '
)。 如果myValue
可能包含單引號,則可以使用:
request.predicate = NSPredicate(format: "entityProperty MATCHES [c] %@", "[^1234]" + myValue)
如果myValue
不是正則表達式模式,並且可能包含一些元字符,則可能需要編寫如下內容:
request.predicate = NSPredicate(format: "entityProperty MATCHES [c] %@", "[^1234]"+NSRegularExpression.escapedPattern(for: myValue))
無論如何,您需要記住:
單引號或雙引號變量(或替換變量字符串)導致%@,%K或$ variable解釋為格式字符串中的文字,因此可以防止任何替換。
(我使用NSPredicate
作為Predicate
在Xcode 8 beta 6中不可用。)
request.predicate = Predicate(format: "entityProperty MATCHES [c] '[^0123]\(myValue)'")
解:
代替%@
占位符,使用字符串替換:“ prefixSomeText \\(myValue)suffixSomeText”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.