NSTextCheckingResult
için docs bakarak ben NSRegularExpression
arayışında eşleşme bulunamadı eğer eşleşme olması durumunda bulma am altında NSCheckingResult
için aralık özelliği benim testi itibaren {NSNotFound,0}
NSCheckingResult Range Özellik {NSNotfound, 0} olarak ayarlanmadı mı?
olarak ayarlanmış olacağını sanmıştım Bulunan NSCheckingResult
aralığı {0,0}
olarak ayarlanmıştır. Onun küçük bir nokta, ama sadece bunun nasıl çalıştığını anlamak için açıklığa kavuşturmak istedim.
// 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
DÜZENLEME: Bu örnekte NSTextCheckingResult *match
olarak konumu ve uzunluğu, sıfır (sıfır nesneye mesajı) dönen muhtemelen neden olan nil
ayarlanır edilmektedir.
if(!match) NSLog(@"Match Not Found");
Ben bu nedenle boş bir grubunu temsil birden yakalama grupları varken NSNotFound
sadece döndürülür olduğunu tahmin ediyorum.
Evet, null eşleşmesi nedeniyle. {{NSNotFound, 0} 'eşleşmeye katılmayan grup için rangeAtIndex:' tarafından döndürülebilir. – hoha
@hoha yorumunuzu bir cevaba aktarırsanız, o zaman fuzzygoat bunu kabul edebilir ve bu soruyu Cevapsız sıraya taşıyabilir. –