在字符串中查找字符串

时间:2009-08-24 13:29:24

标签: iphone objective-c string find

有人知道在iPhone开发的目标c中找到字符串中的字符串(如果存在)的有效方法,我需要在两个单词之间找到字符串的一部分,例如:在这里我需要在字符串中找到二氧化碳评级号,其中z是我正在寻找的值......

xxxxxco_2zendxxxxxxx

3 个答案:

答案 0 :(得分: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",则此代码将以静默方式获取字符串的其余部分。

答案 1 :(得分:2)

This可能对您有用(特别是rangeOfString函数):

(NSRange)rangeOfString:(NSString *)aString

不幸的是Cocoa doesn't have any built-in RegEx support ..

答案 2 :(得分:0)

字符串匹配是一个经过深入探索的领域,尤其适用于处理遗传物质的算法。你可以查看计算机编程的艺术,比你想知道的字符串匹配要多10倍。

大部分都是矫枉过正的,你可以使用正则表达式。查看http://regexkit.sourceforge.net/RegexKitLite/在iphone上运行的正则表达式库。