preg_replace("<span>*(.+?)</span>*","\\1",$str)

解决方案 »

  1.   


    preg_match_all('/<span>(.*?)<\/span>/is',$a,$a_tmp);
    $atmp=$a_tmp[0][0];
    echo $atmp;
      

  2.   

    楼上的方法,如果碰到下面的情况
    <span> <span> <span>…… </span> </span> </span>sadfklsadjf<span>sadf</span>
    象这种的就不行了是吗?我测试的结果是
     <span> <span>…… </span> </span> </span>sadfklsadjf<span>sadf
      

  3.   


    $a = " <span>abc <span class='b'>sdasldfjl </span>asdf </span>" ;
    preg_match('/\<span\>(.*)\<\/span\>/i',$a,$a_tmp); 
    echo $a_tmp[1] ;
      

  4.   

    还是不行,
    是不是正则达不到这么智能啊?
    结果还不是期望的
    <span> <span>…… </span> </span> </span>sadfklsadjf <span>sadf
    这是完整的
    <span> <span> <span>…… </span> </span> </span>sadfklsadjf <span>sadf </span>
    我是想得到红色部份
      

  5.   

    错了,是想得到这个红色部份的
    <span> <span> <span>…… </span> </span> </span>sadfklsadjf <span>sadf </span>
      

  6.   

    <span> <span> [color=#FF0000]<span>…… </span> </span> [/color]</span>sadfklsadjf <span>sadf </span>