我现在要匹配一个url地址,如:<img alt="图片说明" src="http://i3.sinaimg.cn/ent/2013/0604/U8551P28DT20130604154106.jpg" title="title" />。我只想要src的url地址,还要匹配<img .... />,有的是这种形式<img alt="图片说明" src=http://i3.sinaimg.cn/ent/2013/0604/U8551P28DT20130604154106.jpg title="title" />src后面没有““”双引号,有的是单引号,而且alt和title有的<img />标记中是没有的。请问各位这个正则怎么写呢?PHPURL正则图片url

解决方案 »

  1.   

    /((http|https):\/\/)+(\w+\.)+(\w+)[\w\/\.\-]*(jpg|gif|png)/
      

  2.   


    <?php$str =<<<EOF
    <img alt="图片说明" src="http://i3.sinaimg.cn/ent/2013/0604/U8551P28DT20130604154106.jpg" title="title" />src后面没有““”双引号
    <img alt="图片说明" src=http://i3.sinaimg.cn/ent/2013/0604/U8551P28DT20130604154106.jpg title="title" />单引号
    <img alt="图片说明" src='http://i3.sinaimg.cn/ent/2013/0604/U8551P28DT20130604154106.jpg' title="title" />没有alt
    <img src='http://i3.sinaimg.cn/ent/2013/0604/U8551P28DT20130604154106.jpg' title="title" />没有title
    <img alt="图片说明" src='http://i3.sinaimg.cn/ent/2013/0604/U8551P28DT20130604154106.jpg' title="title" />都没有
    <img src='http://i3.sinaimg.cn/ent/2013/0604/U8551P28DT20130604154106.jpg' />EOF;$reg = '/<img[^>]*src=[\'"]?([^\'"\s]+)[\'"]?[^>]*>/im';
    $matches = array();
    preg_match_all($reg, $str, $matches);
    print_r($matches);
      

  3.   

    好像不能匹配
    <img alt=">" src='a.jpg' /> 
      

  4.   

    好像不能匹配
    <img alt=">" src='a.jpg' /> 
    举例子的话最好举一个符合html规范的例子,你说的那个例子无意义。