我正在尝试匹配URL模式,但没有匹配的内容。基本上,来自雅虎的任何东西都是允许的,例如ca.yahoo.com就是允许的。它可以做到这一点,但它不能简单地用于yahoo.com。下面是我的代码:
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");
打印不走运
发布于 2011-12-17 23:37:12
问题是,雅虎之前的这段时间并不是可选的。下面是一个版本,它使前面的整个过程都是可选的:
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输出:
匹配
https://stackoverflow.com/questions/8545705
复制相似问题