最近做项目要处理html数据,其中是过滤出当中的图片,网上找了很多办法都不是很好用,发现用正则可以实现这个需求,有错误欢迎大家提出,共同讨论写正则的方法,下面是实现代码。
+ (NSArray *)filterTheImgUrlArrFromfahterHtml:(NSString *)html{
//<(img|IMG)[^\<\>]*>找img标签的正则
NSString *ss = @"<(img|IMG)[^\\<\\>]*>";//img标签的正则表达式
NSRegularExpression *pre = [[NSRegularExpression alloc] initWithPattern:ss options:0 error:nil];
NSArray *arr = [pre matchesInString:html options:NSMatchingReportProgress range:NSMakeRange(0,html.length)];//这个方法匹配正则,找到符合的结果返回数组集合,返回的类型是NSTextCheckingResult下面会提到。
NSMutableArray *mutArr = [NSMutableArray arrayWithCapacity:1];
NSLog(@"---%@",arr);
for (NSTextCheckingResult *match in arr) {
NSRange matchRange = [match range];//返回的是每个imgb标签的位置
NSString *imgDivStr = [html substringWithRange:matchRange];//根据位置找对应img标签
imgDivStr = [imgDivStr stringByReplacingOccurrencesOfString:@" " withString:@""];此处我为了找出图片URL过滤掉空格
NSString *imgUrl = [[imgDivStr componentsSeparatedByString:@"src=\""] lastObject];
imgUrl = [[imgUrl componentsSeparatedByString:@"\""] firstObject];
[mutArr addObject:imgUrl]; } NSLog(@"%@",mutArr); return [NSArray arrayWithArray:mutArr]; }
原文链接:https://www.f2er.com/regex/360053.html