本帖最后由 ediyal 于 2013-04-17 10:31:08 编辑

解决方案 »

  1.   

    split不行呢,只是code的参数里面也有类似的关键char。
      

  2.   

    code=wxc|20130402001=12,20130402002=9|2*1_50;wxc|20130402001=3,20130402002=0|2*1_10这里面的取的参数是这种形式?
    [参数名]wxc|20130402001 = [参数值]12
    20130402002 = 9|2*1_50
    wxc|20130402001  = 3
    20130402002 = 20130402002=0|2*1_10这样的?
      

  3.   

    那就先把code后面的全都找出来。
      

  4.   

    void Main()
    {
    string str="orderid=20130412111023_siteid=10000_userid=10000_username=%E7%AB%9E%E5%BD%A9%E6%9E%97%E6%9E%97_origins=0_lotid=10208_ixcue=20130412_money=120_mttul=60_one=2_code=wxc|20130402001=12,20130402002=9|2*1_50;wxc|20130402001=3,20130402002=0|2*1_10";
    Regex reg=new Regex(@"(?i)(^|_)(?<key>[a-z]+)=(?<value>((?!_(?!\d+)).)+)");
    foreach(Match m in reg.Matches(str))
    {
      Console.WriteLine("{0}\t\t{1}",m.Groups["key"].Value,m.Groups["value"].Value);
    }

    /*
    orderid 20130412111023
    siteid 10000
    userid 10000
    username %E7%AB%9E%E5%BD%A9%E6%9E%97%E6%9E%97
    origins 0
    lotid 10208
    ixcue 20130412
    money 120
    mttul 60
    one 2
    code wxc|20130402001=12,20130402002=9|2*1_50;wxc|20130402001=3,20130402002=0|2*1_10
    */

    }
      

  5.   

    不是,code=后面的所有字符都是值
      

  6.   

     NameValueCollection queryString=HttpUtility.ParseQueryString(str);