0

maleどちらかまたはのみを受け入れるには、Objective Cの正規表現が必要です。これは、下位と上位の両方を受け入れること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 に答える