2011-12-17 11 views
1

URLパターンに一致させようとしていますが、一致するものはありません。基本的に、yahooのものは許可されているので、たとえばca.yahoo.comは許可されています。そのためには機能しますが、単にyahoo.comでは機能しません。ここに私のコードは次のとおりです。NSPredicate matching

NSString *string = @"http://yahoo.com/"; 
NSString *regex = @"^http://.*\\.yahoo.com/.*$"; 
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES[C] %@", regex]; 
BOOL match = [predicate evaluateWithObject:string]; 

NSLog(@"%@", match? @"MATCH" : @"NO LUCK"); 

プリントNO LUCK

答えて

1

問題が直前ヤフーの期間がオプションではないということです。ここで、オプションの前の全体を作るバージョンである:ここで

NSString *regex = @"^http://(.*\\.)*yahoo.com/.*$"; 

rangeOfString:を使用して簡単な方法である:

NSString *string = @"http://yahoo.com/"; 
NSString *regex = @"^http://(.*\\.)*yahoo.com/.*$"; 

NSRange range = [string rangeOfString:regex options:NSRegularExpressionSearch]; 
NSLog(@"%@", range.location!=NSNotFound? @"MATCH" : @"NO LUCK"); 

のNSLog出力:

MATCH