使用正则表达式删除空行

时间:2015-09-21 09:20:59

标签: ios objective-c regex nsregularexpression

我是iOS开发新手,我有以下数据,我想删除所有空行,请让我知道应用的模式:

我已将模式用作@“(\ r \ n)”并将其替换为@“”,但它不起作用。请帮我解决这个问题

#EXTINF:-1 tvg-name="seedocs" tvg-logo="RT",RT





http://rt.ashttp14.visionip.tv/live/rt-global-live-HD/playlist.m3u8

#EXTINF:-1 tvg-name="hsn" tvg-logo="hsn",HSN TV

rtsp://hsn.mpl.miisolutions.net:1935/hsn-live01/_definst_/mp4:420p500kB31

#EXTINF:-1 tvg-name="us" tvg-logo="us",USTwit

http://bglive-a.bitgravity.com/twit/live/high

#EXTINF:-1 tvg-name="ALJAZEERA" tvg-logo="aljazeera",Aljazeera

rtmp://aljazeeraflashlivefs.fplive.net/aljazeeraflashlive-live/aljazeera_eng_high

#EXTINF:-1 tvg-name="bbc" tvg-logo="bbc",BBC World News



#EXTINF:-1 tvg-name="vevo" tvg-logo="vevo",Vevo

http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch1/06/prog_index.m3u8

#EXTINF:-1 tvg-name="vevo2" tvg-logo="vevo2",Vevo 2

http://vevoplaylist-live.hls.adaptive.level3.net/vevo/ch3/06/prog_index.m3u8

#EXTINF:-1 tvg-name="1HD" tvg-logo="1HD",1HD

rtmp://109.239.142.62/live/livestream3

3 个答案:

答案 0 :(得分:4)

[\r\n]+

你可以改用它。参见demo。替换\n

https://regex101.com/r/vV1wW6/26

NSString *string = @"Your multiline string";
NSError *error = nil;
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"[\r\n]+" options:NSRegularExpressionCaseInsensitive error:&error];
NSString *modifiedString = [regex stringByReplacingMatchesInString:string options:0 range:NSMakeRange(0, [string length]) withTemplate:@"\n"];

答案 1 :(得分:1)

搜索:(?:\r?\n){2,} 替换:\r\n

\r?\n兼容Windows和Linux。 {2,}表示"两个或更多实例"

demo

如果支持,您可以使用\R代替\r?\n来包含其他类型的Unicode换行符。如果不是这样,这可能在将来有用。

答案 2 :(得分:0)

可以使用NSString方法
stringByReplacingOccurrencesOfString:withString:options:range:
选项:
NSRegularExpressionSearch

无需使用NSRegularExpression

NSString *cleanText = [originalText stringByReplacingOccurrencesOfString:@"[\r\n]+" withString:@"\n" options:NSRegularExpressionSearch range:NSMakeRange(0, text.length)];

这将取代\r和/或\n\n的任意组合的所有续行,从而消除所有银行行。