zoukankan      html  css  js  c++  java
  • 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; 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];
            /////其他操作
        }
  • 相关阅读:
    ubuntu中apt-get安装与默认路径
    css计数器
    jq实现多级菜单
    video文件格式说明(笔记)
    css文字闪烁效果
    video设置视频的播放位置(本例中实现效果是视频第一次播放完成后,接下来中从视频的中间部位开始循环播放)
    css3鼠标经过出现转圈菜单(仿)
    jq弹框 (1)内容自适应宽度 2(内容框显示,几秒后自动消失)
    jq实现 元素显示后 点击页面的任何位置除元素本身外 隐藏元素
    nginx https配置记录
  • 原文地址:https://www.cnblogs.com/someonelikeyou/p/3551888.html
Copyright © 2011-2022 走看看