2014-12-03 32 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

相关问题