答案 0 :(得分:55)
我为此目的使用了NSPredicate:
NSString *someRegexp = ...;
NSPredicate *myTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", someRegexp];
if ([myTest evaluateWithObject: testString]){
//Matches
}
答案 1 :(得分:22)
另一种方法是使用NSPredicate
比使用NSRange range = [string rangeOfString:@"^\\w+$" options:NSRegularExpressionSearch];
BOOL matches = range.location != NSNotFound;
更简单,这是NSString的-rangeOfString:options:
几乎没有文档的选项:
-rangeOfString...
我说"几乎没有记录",因为该方法本身并没有将该选项列为可用,但是如果您发现搜索和比较运算符的文档并找到NSRegularExpressionSearch
从OS X 10.7和iOS 3.2开始,您会发现它是{{1}}方法的有效选项。
答案 2 :(得分:3)
NSRegularExpression是另一种选择:
答案 3 :(得分:3)
使用-isMatchedByRegex:
方法。
if([someString isMatchedByRegex:@"^[0-9a-fA-F]+:"] == YES) { NSLog(@"Matched!\n"); }