2009-08-24 163 views
0

有没有人知道在iPhone开发的目标c中找到字符串中的字符串(如果存在的话)的高效方法,我需要在两个单词之间找到字符串的部分,例如,在这里我需要查找的字符串,其中Z是我要找的值中的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

完美,谢谢。代码也第一次工作! – 2009-08-24 14:51:58

0

字符串匹配是特别适用于处理遗传物质算法以及探索域。你可以看看计算机艺术编程的10倍,比你想知道的字符串匹配更多。

大部分是矫枉过正,你会很好地使用正则表达式。检查http://regexkit.sourceforge.net/RegexKitLite/在iPhone上运行的正则表达式库。

+0

干杯,不知道那可用。 – 2009-08-24 15:03:21