有个字符串31,0,32,0,33,0,16,0,25,0,17,0,18,0,19,0,20,0,21,0,22,0,23,0,24,0,26,0,27,0,28,0,29,0,30,0,34,0,35,0
现在想把里面的0全都删了,变成31,32,33,16,25,17,18,19,20,21,22,23,24,26,27,28,29,30,34,35 (用php)

解决方案 »

  1.   

    $preg = "/(0,)|(,0)/";
    $str = "31,0,32,0,33,0,16,0,25,0,17,0,18,0,19,0,20,0,21,0,22,0,23,0,24,0,26,0,27,0,28,0,29,0,30,0,34
    ,0,35,0";echo preg_replace($preg,"",$str);
      

  2.   

    $str = "31,0,32,0,33,0,16,0,25,0,17,0,18,0,19,0,20,0,21,0,22,0,23,0,24,0,26,0,27,0,28,0,29,0,30,0,34
    ,0,35,0";$str_done = str_replace(",0,",",",",".$str.",");echo substr($str_done, 1, strlen($str_done)-2);
      

  3.   

    ??????
    $str = '31,0,32,0,33,0,16,0,25,0,17,0,18,0,19,0,20,0,21,0,22,0,23,0,24,0,26,0,27,0,28,0,29,0,30,0,34,0,35,0';
    foreach(explode(',',$str) as $v)
    {
    if($v != 0) $arr[] = $v;
    }
    echo implode(',',$arr);
      

  4.   

    $str   =   "31,0,32,0,33,0,16,0,25,0,17,0,18,0,19,0,20,0,21,0,22,0,23,0,24,0,26,0,27,0,28,0,29,0,30,0,34,0,35,0";
    echo preg_replace("/\b0,|,0\b|,0,/","",$str);
      

  5.   

    $str   =   "31,0,32,0,33,0,16,0,25,0,17,0,18,0,19,0,20,0,21,0,22,0,23,0,24,0,26,0,27,0,28,0,29,0,30,0,34,0,35,0";
    echo preg_replace("/\b0,|,0\b|,0,/","",$str);
    请问这句怎么理解?
      

  6.   

    |  :是或的意思
    \b :匹配字符边界,但不消耗字符。详细解释请看http://www.regular-expressions.info/wordboundaries.html
      

  7.   

    /\b0,|,0\b|,0,/ 可以进一步改成 /\b0,|,0\b/ 
    因为前两种情况已经包含了的三种情况,不必多次一举。