iOS 中的3种正则表达式
1.利用NSPredicate(谓词)匹配
例如匹配有效邮箱:
NSString*email = @“nijino_saki@163.com”;NSString*regex =@"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}";NSPredicate*predicate = [NSPredicatepredicateWithFormat:@"SELF MATCHES %@", regex];BOOLisValid = [predicate evaluateWithObject:email];
谓词匹配比较灵活,但是需要有谓词的相关知识。
2.利用rangeOfString:option:直接查找
NSString*searchText =@"// Do any additional setup after loading the view, typically from a nib.";NSRangerange = [searchText rangeOfString:@"(?:[^,])*\\."options:NSRegularExpressionSearch];if(range.location !=NSNotFound) {NSLog(@"%@", [searchText substringWithRange:range]); }
options中设定NSRegularExpressionSearch就是表示利用正则表达式匹配,会返回第一个匹配结果的位置。
3.使用正则表达式类
NSString*searchText =@"// Do any additional setup after loading the view, typically from a nib.";NSError*error =NULL;NSRegularExpression*regex = [NSRegularExpressionregularExpressionWithPattern:@"(?:[^,])*\\."options:NSRegularExpressionCaseInsensitiveerror:&error];NSTextCheckingResult*result = [regex firstMatchInString:searchText options:0range:NSMakeRange(0, [searchText length])];if(result) {NSLog(@"%@\n", [searchText substringWithRange:result.range]);}
使用系统的正则表达式类(NSRegularExpression)会返回匹配的多个结果。