情况一
href="http://www.123.com/kao1=值1&name=值name&kao3=值3"
情况二
href="http://www.123.com/name=值name&kao1=值1&kao3=值3"
情况三
href="http://www.123.com/kao1=值1&kao3=值3&name=值name"
使用正则 去除 name=值name 

解决方案 »

  1.   


    百度知道上也有人问这个,是不是和楼主同一个人哟
    $a = "href=\"http://www.123.com/kao1=值1&name=值name&kao3=值3\"";
    $b = "href=\"http://www.123.com/name=值name&kao1=值1&kao3=值3\"";
    $c = "href=\"http://www.123.com/kao1=值1&kao3=值3&name=值name\"";
    echo $a."<br />";
    echo $b."<br />";
    echo $c."<br />";
    $reg = '#(&)?name=(.*?)name(?(1)|&)#';
    $a = preg_replace($reg,"",$a);
    $b = preg_replace($reg,"",$b);
    $c = preg_replace($reg,"",$c);
    echo $a."<br />";
    echo $b."<br />";
    echo $c."<br />"; 
      

  2.   

    preg_replace("/\/.*?(name=值name).*/", '', $url);
      

  3.   

    ...写错了
    preg_replace("(/\/.*?)(name=值name)(.*)/", '$1$3', $url);
      

  4.   

    谢谢,不错,但如果前是个问号,就不行了,为什么呢 ?$b = "href=\"http://www.123.com/index.php?name=值name&amp;kao1=值1&amp;kao3=值3\"";上面这段不行了
      

  5.   

    你理解错了 "值name" 是个未知的东西 
      

  6.   

    这个问题不是有个帖子吗,咋还又开一个
    $url="http://www.123.com/name=值2&kao1=值1&kao3=值3";
    $str=preg_replace("/(kao1=([^&|$]+)[&|$]|name=([^&|$]+)[&|$])|kao3=([^&|$]+)/","$2$3$4-",$url);
    $str=substr($str,0,-1);
    echo $str.".htm";
      

  7.   

    哦,这次换了啊,稍改一下$url="http://www.123.com/name=值name&kao1=值1&kao3=值3";
    $str=preg_replace("(&?)name=(.*?)name&?/","",$url);
    echo $str;