NSRegularExpression でテストしたい NSString がありますが、期待どおりに動作せず、答えを探す場所がわかりません。
だからここに私のコードがあります:
BOOL companyNameContainsOnlyAuthorizedCharacters = YES;
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[\P{Letter}]" options:0 error:&error];
NSArray *matches = [[NSArray alloc] init];
matches = [regex matchesInString:[model editorName] options:0 range:NSMakeRange(0,[[model editorName] length])];
if ([matches count] > 0) {
companyNameContainsOnlyAuthorizedCharacters = NO;
}
私の知る限り、[\P{Letter}] は文字以外のものと一致するはずです。それにもかかわらず、その代わりに、文字 "\"、"P"、"{"、"L"、"e"、"t"、"r"、および "}" に一致します。角かっこ [] なしでも試してみましたが、何にも一致しません。
どんな助けでも大歓迎です、事前に感謝します。
編集:また、xcode は \P が不明なエスケープ シーケンスであるという警告を表示します...