2009-08-24 290 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