本帖最后由 binfenbao 于 2012-10-16 16:34:23 编辑

解决方案 »

  1.   

    To:acabin我要匹配出值啊,不用正则怎么取,还有<fun name="b">可能有多个属性的
      

  2.   

    $s=<<<TXT
    text
    <fun name="a">
        text
        <div>
        text
        </div>
        <fun name="b">
            <a href=""></a>
        </fun>
        <div>
        text
        </div>
    </fun>
    text
    TXT;
    function foo($s){
    preg_match('#<fun[^>]*>(.*)</fun>#s',$s,$m);
    if(substr_count($m[1],'fun')==2)
               return $m[1];
    else
                   return '';
    }
    echo foo($s);
      

  3.   

    to:jordan102不对的,一个页面可能有多个<fun></fun>块,需要用preg_match_all才能全部匹配完,但是匹配出来的就有问题了
      

  4.   

    怎么不对? 当有两队 fun ,你不是要里面的所有值吗?,运行一下试试。
      

  5.   

    TO:jordan102
    如果代码是$s=<<<TXT
    text
    <fun name="a">
        text
        <div>
        text
        </div>
        <fun name="b">
            <a href=""></a>
        </fun>
        <div>
        text
        </div>
    </fun>
    text
    TXT;最前面还有一组<fun></fun>就不行了,我希望的是不论s里面有多少对<fun></fun>只能取出有两队的<fun></fun>其他的忽略
      

  6.   

    TO:jordan102
    如果代码是$s=<<<TXT
    <fun name="1"><div>1</div></fun>
    text
    <fun name="a">
        text
        <div>
        text
        </div>
        <fun name="b">
            <a href=""></a>
        </fun>
        <div>
        text
        </div>
    </fun>
    text
    TXT;
    最前面还有一组<fun></fun>就不行了,我希望的是不论s里面有多少对<fun></fun>只能取出有两队的<fun></fun>其他的忽略
      

  7.   

    他要嵌套的两对,不嵌套的不计算,嵌套三个也不计算呵呵,说简单也不简单
    这个问题用dom+xpath要比正则简单些
      

  8.   

    TO:snmr_com
    就是这个意思,能不能帮忙啊