【发布时间】:2014-07-06 21:21:27
【问题描述】:
我正在尝试查看 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];
我尝试用包含替换匹配项,但这没有帮助。
也试过了:
NSPredicate *stedPredicate = [NSPredicate predicateWithFormat: @"SELF LIKE 'ABC'"];
如何更改谓词以使其正常工作?
【问题讨论】:
-
这将检查字符串是否包含像
ABC这样的子字符串,而不是获取“ABC”中的任何字符
标签: objective-c nsstring nspredicate