您好 我正在尝试评估NSString以查看它是否符合某个标准,其中包含一个或多个星号字符形式的通配符。
示例:
NSString *filePath = @"file://Users/test/Desktop/file.txt";
NSString *matchCriteria = @"file://*/file.*";
我想看看filePath
是否匹配(适合?)matchCriteria
,在此示例中确实如此。
有谁知道我该怎么做呢?
非常感谢!
答案 0 :(得分:7)
除NSRegularExpression
外,您还可以使用NSPredicate
。
NSString *filePath = @"file://Users/test/Desktop/file.txt";
NSString *matchCriteria = @"file://*/file.*";
NSPredicate *pred = [NSPredicate predicateWithFormat:@"self LIKE %@", matchCriteria];
BOOL filePathMatches = [pred evaluateWithObject:filePath];
Predicate Programming Guide是一份全面的文档,旨在说明谓词的工作原理。如果您要根据某些条件筛选一系列项目,它们会特别有用。
答案 1 :(得分:3)
NSString实现了这些方法:
@interface NSObject (NSComparisonMethods)
- (BOOL)isLike:(NSString *)object;
- (BOOL)isCaseInsensitiveLike:(NSString *)object;
@end
它们比NSPredicate和NSRegularExpression快得多。
答案 2 :(得分:1)
您可以使用NSRegularExpression。