iOS 抓取 UIwebview 上 所有 图片 并进行滚动播放
关于在UIwebview上添加滚动图片 两种滚动手势会混淆,应为webview有webview.scrollview的属性
故参照昨天的随笔 scrollview嵌套解决方案。
本篇随笔主要讲循环使用正则表达式,本人在此提供一个在线编辑正则表达式、并验证的好东东网址如下:
http://www.rubular.com/
可以事先校验好自己的正则表达式,我在网上搜索好多 抓取网页所有图片的方法 寥寥无几 我觉得我的方法特别方便 在此收入自己的博客
正则法则1:<img [^>]*src\\s*=\\s*\"([^>]+)\"
这个是 获取 img 的所有属性 包括 img 的长宽等 比如结果:<img src="http://img.iknow.bdimg.com/app/qrcode.png" style="height:609px; width:528px" />
我想提取的是src的图片名称 以下是 进步版本
正则法则 2:src=((.+)(‘|\.gif|\.jpg|\.png))
就可以获取到 src="http://img.iknow.bdimg.com/app/qrcode.png
再用字符串属性 [str1 substringFromIndex:5];去掉前5个字符就可以了
其实我想用正则直接得到目标串 但是没实现 ,如果哪位亲 会的话 一定要告诉我 哦
循环提取当前网页所有src 方法如下:
//正则法则start -(NSMutableArray*)match_fun:(NSString *)searchText Regex:(NSString *)regTags { NSMutableArray *arr=[[[NSMutableArray alloc]init]autorelease]; NSError *error = NULL; NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:regTags options:NSRegularExpressionCaseInsensitive // 还可以加一些选项,例如:不区分大小写 error:&error]; NSLog(@"正则法则 判断结果: %@",error); NSArray *matches = [regex matchesInString:searchText options:0 range:NSMakeRange(0, [searchText length])]; // NSLog(@"%@",matches); // 用下面的办法来遍历每一条匹配记录 // NSString *re=@"[iI][mM][gG][\s]*[sS][rR][cC][\s]*=[\s‘\"]*(?<ref_value>.*?(\.gif|\.jpg|\.png)) "; int i=0; for (NSTextCheckingResult *match in matches) { NSRange matchRange = [match range]; NSString *tagString = [searchText substringWithRange:matchRange]; // 整个匹配串 [arr insertObject:tagString atIndex:i]; i++; //NSLog(@"tagString: %@",tagString); } return arr; } //调用: NSString *searchText = [showWebView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML"]; NSString *regTags = @"src=((.+)(‘|\.gif|\.jpg|\.png))";//@"<img [^>]*src\\s*=\\s*\"([^>]+)\""; NSMutableArray *arr=[[[NSMutableArray alloc]init]autorelease]; arr=[self match_fun:searchText Regex:regTags]; NSLog(@"结果 arr :%@",arr); for(int i=0;i<count;i++) { NSString *str1=[NSString stringWithFormat:@"%@",[arr objectAtIndex:i]]; str1= [str1 substringFromIndex:5]; /////其他操作 }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。