用正则表达式过滤出html中得 img标签,并且把URL链接给取出来


最近做项目要处理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];
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值