NSString *someRegexp = ...;
NSPredicate *myTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", someRegexp];
if ([myTest evaluateWithObject: testString]){
//Matches
}
另一种比使用NSPredicate
稍微简单的方法是使用NSString的-rangeOfString:options:
方法,这是一个几乎没有记录的选项:
NSRange range = [string rangeOfString:@"^\\w+$" options:NSRegularExpressionSearch];
BOOL matches = range.location != NSNotFound;
NSRegularExpressionSearch
,则会发现自OS X 10.7和iOS 3.2以来,它是-rangeOfString...
方法的有效选项。-isMatchedByRegex:
方法。if([someString isMatchedByRegex:@"^[0-9a-fA-F]+:"] == YES) { NSLog(@"Matched!\n"); }
NSRegularExpression
一直是框架的一部分,比这个问题提出的时间早了近一年。显然,在NSRegularExpression
推出之前就已经有使用正则表达式的方法,例如Vaz的回答中所提到的。 - Mark Amery