有人知道在iPhone开发的目标c中找到字符串中的字符串(如果存在)的有效方法,我需要在两个单词之间找到字符串的一部分,例如:在这里我需要在字符串中找到二氧化碳评级号,其中z是我正在寻找的值......
xxxxxco_2zendxxxxxxx
答案 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
答案 2 :(得分:0)
字符串匹配是一个经过深入探索的领域,尤其适用于处理遗传物质的算法。你可以查看计算机编程的艺术,比你想知道的字符串匹配要多10倍。
大部分都是矫枉过正的,你可以使用正则表达式。查看http://regexkit.sourceforge.net/RegexKitLite/在iphone上运行的正则表达式库。