楼主要的是不是把$str = "sort=id1&page=1&pgsz=20&keyword=hello"; 或 $str =  "page=1&sort=id1&pgsz=20&keyword=hello"; 或 $str = "page= 1&pgsz=20&keyword=hello&sort=id1";替换成 $str = "page=1&pgsz=20&keyword=hello";也就是去掉上面字符串中的sort=id1?

解决方案 »

  1.   

    正如 dreambird1983  所说的
      

  2.   

    #$str = "page=1&sort=id1&pgsz=20&keyword=hello";
    $str = "page=1&pgsz=20&keyword=hello&sort=id1";
    echo preg_replace("/sort=[^&]+&|\&sort=[^&]+/","",$str);
      

  3.   

    为什么非要用正则?
    你这个用应该是get的URL参数吧.如果是,那么可以用数组解决function getUrl($a,$b="")
    {
        global $_GET;
        $returnUrl = ""
        if(isset($_GET))
        {
            foreach($_GET as $key => $val)
            {
                if($a==$key)
                {
                    if(!empty($b))
                    {
                         $returnUrl .= "&$key=$b";
                    }
                }else{
                    $returnUrl .= "&$key=$val"; 
                }
            }
        }
        $returnUrl = substr($returnUrl,1);
        return "?$returnUrl";
    }
    调用的时候
    $query = getUrl("参数",值);
    如果去掉某个参数
    $query = getUrl("参数")