2009-08-24 3 views
0

Кто-нибудь знает хороший эффективный способ нахождения строки в строке (если она существует) в объекте c для разработки iPhone, мне нужно найти часть строки между двумя словами, например. здесь мне нужно найти рейтинг co2 число в строке, где г является значением Я ищу ...Поиск строки в строке

xxxxxco_2zendxxxxxxx 

ответ

6

В идеале я бы использовал регулярное выражение для этого, возможно, что-то вроде co_2(.*?)end, поэтому я бы посмотрел на RegexKitLite как stimms suggests.

Если это не подходит, вы можете извлечь строку, которую вы ищете что-то вроде этого:

NSString* src = @"xxxxxco_2zendxxxxxxx"; 
NSRange startMarker = [src rangeOfString:@"co_2"]; 

if (startMarker.location != NSNotFound) { 
    NSScanner* scanner = [NSScanner scannerWithString:src]; 
    [scanner setScanLocation:startMarker.location + startMarker.length]; 
    NSString* co2Value = @""; 
    [scanner scanUpToString:@"end" intoString:&co2Value]; 
    NSLog(@"co_2 value is %@", co2Value); 
} else { 
    NSLog(@"co_2 marker not found"); 
} 

Здесь мы ищем @"co_2", в противном случае, если он не найден, то используйте NSScanner, чтобы захватить все от сразу после этой строки до следующего появления @"end". Обратите внимание, что если @"end" отсутствует, этот код беззвучно захватывает остальную часть строки.

+0

Отлично, спасибо. Код тоже работал в первый раз! –

0

соответствие строк хорошо изучен домен специально для алгоритмов, связанных с генетическим материалом. Вы можете проверить искусство программирования в 10 раз больше, чем когда-либо хотели узнать о соответствии строк.

Большая часть этого является излишним, и вы были бы в порядке, используя регулярное выражение. Проверьте http://regexkit.sourceforge.net/RegexKitLite/ библиотеку регулярных выражений, которая работает на iphone.

+0

Приветствия, не знали, что было доступно. –