Я думаю, что вы хотите NSScanner. Чтобы найти произвольную строку в большей строке, вы делаете что-то вроде:
NSString *scannedString = nil;
NSScanner *scanner = [NSScanner scannerWithString:@"The quick brown fox jumped over the lazy dog"];
[scanner scanUpToString:@"brown" intoString:&scannedString];
// scannedString is now @"The quick " and the scanner's location is right before "brown"
Чтобы получить контекст, вам нужно решить, сколько вокруг места, где было найдено «коричневое», вы хотите включить в свой результат.
В качестве альтернативного решения, когда вы всегда ищете слова, вы можете использовать componentsSeparatedByString:
NSString, чтобы получить массив, а затем вернуть элемент + x много элементов вокруг него. Например:
NSArray *words = [@"The quick brown fox jumped over the lazy dog" componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet];
NSUInteger wordLocation = [words indexOfObject:@"brown"];
NSString *wordInContext = [[words subarrayWithRange:NSMakeRange(brownlocation-2, brownLocation+2)] componentsJoinedByString:@" "];
(Во всех примерах здесь отсутствует необходимая проверка ошибок, но это просто для того, чтобы дать вам представление о том, как вы можете делать такие вещи.)