0

我需要Objective C中的正则表达式来接受一个male或只接受female..它应该case-Insensitive意味着可以接受较低和较高的.我浏览了苹果文档..并在下面的代码中实现但不工作......

-->只能接受男性或女性

-(BOOL)genderValidate:(NSString *)string{

NSError *error=nil;

NSRegularExpression *regex =[NSRegularExpression regularExpressionWithPattern:@"\\b (m|f)(a|e)(l|m)(e|a)(l)(e) \\b" options:(NSRegularExpressionCaseInsensitive) error: &error];
NSUInteger numberofmatches =[regex numberOfMatchesInString:string options:0 range:NSMakeRange(0,[string length])];

return numberofmatches;


}
4

2 回答 2

7

为什么要使用正则表达式?把事情简单化:

- (BOOL)genderValidate:(NSString *)string {
    string = [string lowercaseString];

    return [string isEqualToString:@"male"] || [string isEqualToString:@"female"];
}
于 2012-12-23T05:55:17.533 回答
1

正则表达式应该是

^(male|female)$
于 2012-12-23T05:48:54.220 回答