正则表达式没有给出正确的输出

时间:2014-11-28 07:36:59

标签: ios regex nsstring objective-c-blocks nsregularexpression

我有一个像这样的字符串

#EXT-X-MEDIA-SEQUENCE:4138
#EXTINF:10.031,
media_w2031009843_4138.mp3
#EXTINF:10.031,
media_w2031009843_4139.mp3
#EXTINF:10.031,
media_w2031009843_4140.mp3

从这里我想提取这些mp3文件名,所以我就像这样

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){

        //some code is there
}

但它不会进入这个区域。这是为什么。如果我的正则表达式错了,那么我应该写的正确方法是什么?

谢谢

1 个答案:

答案 0 :(得分:0)

使用前瞻符合.mp3

后面的字符串
\w+(?=\.mp3)

nsregularexpression将是,

\\w+(?=\\.mp3)

OR

使用您自己的正则表达式并打印组索引1以获取文件名。