我试图查看NSString
是否包含预定义字符串中的任何字符(A,B或C中的任何一个)。
我知道我可以这样做:
NSCharacterSet *abc = [NSCharacterSet characterSetWithCharactersInString: @"ABC"];
NSRange range = [sequence rangeOfCharacterFromSet: abc];
BOOL result = (range.location != NSNotFound);
如果传入的字符串包含至少一个A,B或C,则结果为YES。
我试图看看我是否可以使用NSPredicate
作为替代方案,所以我一直在玩它(例如另见:Checking to see if an NSString contains characters from a different NSString),但我总是得到NO的结果:
NSPredicate *abcPredicate = [NSPredicate predicateWithFormat: @"SELF matches 'ABC'"];
result = [stedPredicate evaluateWithObject: myString];
我尝试用contains替换匹配,但这没有用。
也尝试过:
NSPredicate *stedPredicate = [NSPredicate predicateWithFormat: @"SELF LIKE 'ABC'"];
如何更改谓词才能生效?
答案 0 :(得分:2)
检查字符串是否包含您可以使用的任何字符A,B或C. 正则表达式括号表达式“[ABC]”:
NSPredicate *abcPredicate = [NSPredicate predicateWithFormat: @"SELF MATCHES %@", @".*[ABC].*"];
BOOL result = [abcPredicate evaluateWithObject: myString];