解决方案 »

  1.   

    提取图片地址
    <li>[^a-zA-Z0-9]*<div>.*</div>[^a-zA-Z0-9]*<div><img src='(.*)'></div>[^a-zA-Z0-9]*</li>
    测试:http://regexr.com?37g00提取图片文字
    <li>[^a-zA-Z0-9]*<div>(.*)</div>[^a-zA-Z0-9]*<div><img src='.*'></div>[^a-zA-Z0-9]*</li>
    测试:http://regexr.com/?37fvt
      

  2.   

    $s =<<< TXT
    <li>
        <div>不带图片的div</div>
    </li>
    <li>
        <div>不带图片的div</div>
    </li>
    <li>
        <div>带图片的div</div>
        <div><img src='logo.jpg'></div>
    </li>
    TXT;
    preg_match_all("/<li>.*<div>([^<]+).+?src='([^']+)/s", $s, $r);
    print_r($r);    [1] => Array
            (
                [0] => 带图片的div
            )    [2] => Array
            (
                [0] => logo.jpg
            )
      

  3.   

    根据老徐的答案 画蛇添个足
    $s =<<< TXT
    <li>
        <div>不带图片的div</div>
    </li>
    <li>
        <div>不带图片的div</div>
    </li>
    <li>
        <div>带图片的div</div>
        <div><img src="http://www.china.com.cn/logo.jpg"></div>
    </li>
    TXT;
    preg_match_all("/<li>.*<div>[^<]+.+?src=['|\"]([^'|\"]+)/s", $s, $r);
    print_r($r);
      

  4.   

    你这DIV 里面都没有class和ID吗