2016-07-20 4 views
0

NSString에서 하위 문자열을 가져와야합니다. 이 예를 들어, 내가이 문자열 A-BB-CD-EF_10AW -ZWE_EGNSString을 반복하고 하위 문자열을 가져 오는 방법은 무엇입니까?

이 다음 -

까지 E 뒤에 있다면 내가 EF_10AW을 얻을 필요가 - 후 문자열을 얻을 필요 . 어떻게하면 NSString을 반복하고 부분 문자열을 동적으로 얻을 수 있습니까?

+2

정규식을 사용하십시오. 이제 Xcode에 액세스 할 수 없지만이 표현식은 테스트 문자열이 주어진 경우 EF_10AW를 반환하는 캡처 제품을 만듭니다. ^. * - (? E. *) -. * $ – jp2g

답변

1

문자열에 E로 시작하고 -로 끝나는 여러 문자열이 포함되어있는 경우 모든 문자열을 찾을 수있는 솔루션이 하나 있어야합니다. 이러한 솔루션을 위해 아래 코드를 참조하십시오 :

NSString *str = @"A-BB-CD-EF_10AW-ZWE_EG"; 

NSArray *compArray = [str componentsSeparatedByString:@"-"]; 

NSMutableArray *arrayStartWithE = [NSMutableArray array]; 

for (int i = 0; i < [compArray count]; i++) { 
    if ([[compArray objectAtIndex:i] hasPrefix:@"E"]) { 
     [arrayStartWithE addObject:[compArray objectAtIndex:i]]; 
    } 
} 

여기 arraystartWithE는 모든 유형의 문자열을 제공합니다. 희망이 당신을 도울 수 있습니다.

0

시도해보십시오. splitArray = [yourString componentsSeparatedByString : @ "- E"];

수동으로 루프 할 필요가 없습니다.

0
NSString *haystack = @"A-BB-CD-EF_10AW-ZWE_EG"; 
NSString *haystackPrefix = @"A-BB-CD-"; 
NSString *haystackSuffix = @"-ZWE_EG"; 
NSRange needleRange = NSMakeRange(haystackPrefix.length, 
           haystack.length - haystackPrefix.length - haystackSuffix.length); 
NSString *needle = [haystack substringWithRange:needleRange]; 
NSLog(@"needle: %@", needle); // -> "hello World" 
관련 문제