NSTextCheckingResult
のためにドキュメントを見てから私はNSRegularExpression
検索で一致が見つからなかった場合、私は何の一致がない場合ことを発見しています下のNSCheckingResult
用範囲プロパティは私のテストから{NSNotFound,0}
NSCheckingResult Rangeプロパティが{NSNotfound、0}に設定されていませんか?
に設定されるだろうという印象の下にありましたNSCheckingResult
の範囲は{0,0}
に設定されています。その小さな点ですが、私はこれがどのように機能しているかについての私の理解を明確にしたかっただけです。
// REGEXPRESSION
NSString *textBuffer = @"1234567890";
NSString *pattern = @"(([A-Z]+))";
NSRegularExpression *regExp = [NSRegularExpression regularExpressionWithPattern:pattern options:0 error:nil];
NSTextCheckingResult *match = [regExp firstMatchInString:textBuffer options:0 range:NSMakeRange(0, [textBuffer length])];
// ERROR CHECK
if([match range].location == NSNotFound) NSLog(@"Match Not found");
NSLog(@"location: %d", [match range].location);
NSLog(@"length : %d", [match range].length);
// OUTPUT
location: 0
length : 0
EDIT:この例NSTextCheckingResult *match
で 場所及び長さがゼロ(ゼロ・オブジェクトへのメッセージ)を返すしている理由はおそらくである、nil
に設定されています。
if(!match) NSLog(@"Match Not Found");
従って私はNSNotFound
は、それが空のグループを表す複数のキャプチャグループがある場合にのみ返されることを推測しています。
はい、それはヌルマッチのためです。 '{NSNotFound、0}'は、マッチに参加しなかったグループの 'rangeAtIndex:'によって返されます。 – hoha
@hohaあなたがあなたのコメントを答えに移すと、ファジーゴートはそれを受け入れてこの質問を未回答のキューから外すことができます。 –