zoukankan      html  css  js  c++  java
  • 一个能从网页把logo图片取到的正则表达式

    今天同事叫帮忙写一个正则表达式,用于匹配网站<img>标签内的所有的src属性的值,
    也就是图片的地址,这个地址里必须包括有logo字样,并且必须是以.gif,.jpg,.png的图片,
    本人的正则达表式,可谓很入门级,也就硬着答应吧,最后搞鼓了2小时终于有下面这个:

    (?<=<img[^<>]*?\ssrc=(?<i>["']?))[^'"]*?(logo)+?.*?\.(gif|jpg|png)(?=\k<i>.*?>)

    测试表达式

    测试以下文本:
    //文本开始
    1、<img src=http://www.cnblogs.com/1/logo.gif /> 没有引号
    2、<img src="http://www.cnblogs.com/2/logo.gif" />有引号,单引或双引都行
    3、<img src=../iamges/3/logo.gif />相对的路径,没有引号
    4、<img src='iamges/4/logo.gif' />相对的路径,有引号
    5、<img src="http://www.cnblogs.com/5/logo.gif' />错误的写法,双引开头,单引结束,封闭符号不一致辞
    6、<img src="http://www.cnblogs.com/6/logo.gifd" />含有logo字样,但不是以.gif或.jpg或.png结尾,也将不匹配。
    7、<img src="http://www.cnblogs.com/7/xxxxxlog.gif" />以.gif或.jpg或.png结尾,但不含有logo字样,也将不匹配。
    //文本结束
    匹配结果:
    得到4条匹配的图片URL:
    http://www.cnblogs.com/1/logo.gif
    http://www.cnblogs.com/2/logo.gif
    ../iamges/3/logo.gif
    iamges/4/logo.gif

    可能有很多我考虑不周到的地方,请大家指出,虚心向各位园友学习。
    这也是我发这个贴子的主要原因,不胜感激。
  • 相关阅读:
    Laravel5.1 响应--Response
    Laravel5.1 请求--Request
    Laravel5.1 控制器--Controller
    Laravel5.1 模型--查询作用域
    Laravel5.1 模型--删除
    VMware Workstation错误Transport(VMDB)error -44:Message
    如何给flash里面添加链接
    巧用:empty解决webkit核心浏览器text-indent的bug
    form radio & checkbox解决方案
    字符串的第几个
  • 原文地址:https://www.cnblogs.com/airy/p/1546723.html
Copyright © 2011-2022 走看看