2011-08-30 5 views
0

사람은 목표 C에서이 코드를 작성 좀 도와주십시오 수 있습니다목표 C에 PHP 코드를 변환

함수의 기능
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; 
    } 

} 

은 단순 텍스트 및 $start$end 3 개 값, $string 소요 이는 텍스트를 찾습니다 함수가 ($start 검색의 시작, 한 번 $end 검색의 끝이 될 것이다, 발견 시작하고이 값을 반환합니다)

감사

답변

2

검색 :

- (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]; 

} 

그러나 물론 당신은 정말 그냥 사용한다 : 첫째 start 문자열 후 첫 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 문자열을

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

그들은 동등하지 않습니다. 하위 문자열 색인을 검색하지 않습니다. – Nekto

관련 문제