2014-12-03 98 views
-2

你好,我有這樣的如何從NSString獲取特定的字符串?

 
#EXTM3U 
#EXT-X-VERSION:3 
#EXT-X-ALLOW-CACHE:NO 
#EXT-X-TARGETDURATION:11 
#EXT-X-MEDIA-SEQUENCE:2933 
#EXTINF:10.031, 
media_w687716935_2933.mp3 
#EXTINF:10.031, 
media_w687716935_2934.mp3 
#EXTINF:10.031, 
media_w687716935_2935.mp3 

從這個字符串我想所有的.mp3文件一的NSString。我怎樣才能做到這一點?請幫幫我。

感謝

UPDATE

我把這樣的

NSRegularExpression *regex2 = [NSRegularExpression regularExpressionWithPattern:@"\\w+(?=\\.mp3)" options:NSRegularExpressionCaseInsensitive error:&error]; 

[regex2 enumerateMatchesInString:strM3u81 options:0 range:NSMakeRange(0, [strM3u81 length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){ 
} 

但這裏的塊不excecute的內部代碼。那有什麼問題?以及如何獲得這些文件名?

+0

你嘗試過什麼嗎? – hwnd 2014-12-03 04:00:13

+0

是的,我會更新問題 – user2889249 2014-12-03 04:02:15

+0

爲什麼重複? http://stackoverflow.com/questions/27118755/how-extract-something-from-nsstring – Larme 2014-12-03 09:08:50

回答

0

我不擅長正則表達式,所以我用另一種方式做。 試試這個代碼

NSString *input = @"#EXTM3U\n #EXT-X-VERSION:3\n #EXT-X-ALLOW-CACHE:NO\n #EXT-X-TARGETDURATION:11\n #EXT-X-MEDIA-SEQUENCE:2933\n #EXTINF:10.031,\n media_w687716935_2933.mp3\n #EXTINF:10.031,\n media_w687716935_2934.mp3\n #EXTINF:10.031,\n media_w687716935_2935.mp3"; 
    NSArray *subBreakingLineStrings = [input componentsSeparatedByString:@"\n"]; 

    NSMutableArray *results = [NSMutableArray new]; 
    for (NSString *subString in subBreakingLineStrings) { 
     if ([subString rangeOfString:@".mp3"].location != NSNotFound) { 
      [results addObject:subString]; 
     } 
    } 

    NSLog(@"result = %@", results); 

輸出:

result = (
    " media_w687716935_2933.mp3", 
    " media_w687716935_2934.mp3", 
    " media_w687716935_2935.mp3" 
) 
+0

.mp3文件正在改變時間,所以不能被硬編碼 – user2889249 2014-12-03 04:35:45

相關問題