Оценить / сравнить NSString с подстановочными знаками? - PullRequest
2 голосов
/ 24 февраля 2011

Привет! Я пытаюсь оценить строку NSSt, чтобы определить, соответствует ли она определенным критериям, содержащим подстановочные знаки в виде одного или нескольких символов звездочки.

Пример:

NSString *filePath = @"file://Users/test/Desktop/file.txt";
NSString *matchCriteria = @"file://*/file.*";

Я хотел бы видеть, соответствует ли filePath (подходит?) matchCriteria, в этом примере это соответствует.Кто-нибудь знает, как я могу это сделать?

Большое спасибо!

Ответы [ 3 ]

7 голосов
/ 24 февраля 2011

В дополнение к 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 - это всеобъемлющий документ, описывающий, как работают предикаты. Они могут быть особенно полезны, если у вас есть массив элементов, которые вы хотите отфильтровать на основе некоторых критериев.

3 голосов
/ 01 сентября 2012

NSString реализует эти методы:

@interface NSObject (NSComparisonMethods)
- (BOOL)isLike:(NSString *)object;
- (BOOL)isCaseInsensitiveLike:(NSString *)object;
@end

Они намного быстрее, чем NSPredicate и NSRegularExpression.

1 голос
/ 24 февраля 2011

Вы можете использовать NSRegularExpression .

...