2011-08-30 38 views
0

有人可以請幫我寫在目標C的代碼:一個PHP代碼轉換爲目標C

function extractStringFromString ($string, $start, $end) { 

    $startPos = strpos($string,$start); 
    $stringEndTagPos = strpos($string,$end,$startPos); 
    $stringBetween = substr($string,$startPos+strlen($start),$stringEndTagPos-$startPos-strlen($start)); 

    if (strlen($stringBetween) != 0) { 

     return $stringBetween; 
     return true; 
    } 
    else { 

     return false; 
    } 

} 

函數的功能很簡單,取3個值,$string這是一個文本和$start$end該功能將在文中尋找($start必應搜索的開始,一旦開始被發現,$end必應搜索的結束,它會返回值)

感謝

回答

2

搜索第一start串和最後end

- (NSString *)extractStringFromString:(NSString *)string start:(NSString *)start end:(NSString *)end 
{ 
    NSRange indexStart = [string rangeOfString:start]; 
    if (indexStart.location == NSNotFound) return nil; 

    NSRange searchRange = NSMakeRange(indexStart.location + indexStart.length, [string length] - indexStart.location - indexStart.length); 
    NSRange indexEnd = [string rangeOfString:end options:NSBackwardsSearch range:searchRange]; 
    if (indexEnd.location == NSNotFound) return nil; 

    return [string substringWithRange:NSMakeRange(indexStart.location + indexStart.length, indexEnd.location - indexStart.location - indexStart.length)]; 
} 

搜索第一start串和第一end串第一start串後:

- (NSString *)extractStringFromString:(NSString *)string start:(NSString *)start end:(NSString *)end 
{ 
    NSRange indexStart = [string rangeOfString:start]; 
    if (indexStart.location == NSNotFound) return nil; 

    NSRange searchRange = NSMakeRange(indexStart.location + indexStart.length, [string length] - indexStart.location - indexStart.length); 
    NSRange indexEnd = [string rangeOfString:end options:NSLiteralSearch range:searchRange]; 
    if (indexEnd.location == NSNotFound) return nil; 

    return [string substringWithRange:NSMakeRange(indexStart.location + indexStart.length, indexEnd.location - indexStart.location - indexStart.length)]; 
} 
+0

感謝很多人,行「返回[字符串...」返回一個錯誤(程序接收到信號「sigabrt」),任何想法爲什麼? :) – ahoura

+0

請給我,你的電話的例子。 (輸入字符串) – Nekto

+0

這是代碼: NSString * html = [NSString stringWithContentsOfURL:[NSURL URLWithString:@「http://radarurl.com/url/twtio.com」]]; NSString * siteID = [self extractStringFromString:html start:@「var SITE_ID =」end:@「;」]; – ahoura

4
-(NSString*)extractStringFromString:(NSString*)text fromIndex(NSInteger)start toIndex:(NSInteger)end{ 
    NSRange cropRange = {start, [text length] - end}; 
    return [text substringWithRange: cropRange]; 

} 

但是,當然,你應該只使用:

NSRange cropRange = {aStartIndex, aLength}; 
    NSString* substring = [text substringWithRange: cropRange]; 
+0

它們不等價。您不在搜索子字符串索引。 – Nekto