string str=@"<meta http-equiv=refresh content=3><pre id=BET_DATA>
1    1    932    932    80    78/30
1    9    6    0    76    110/0
2    1    145    145    76.2    110/30
2    6    328    328    80    104/30
2    13    54    54    82    238/58
3    10    2365    2365    82    238/58
3    11    2583    2583    82    238/58
4    1    2880    2880    85    110/30
4    8    296    296    76    110/30
5    1    0    55    77    0/30
5    1    0    542    76.2    0/30
5    2    0    2168    84    0/58
6    2    1166    1166    80    78/30
6    8    403    403    76    110/30
7    1    1093    1093    82    100/30
7    5    0    542    82    0/58
7    5    262    262    76    110/30
8    2    0    217    82    0/58
8    2    761    761    76    110/30
9    1    187    187    82    238/58
10    3    1665    1665    76    110/30
10    8    298    298    82    236/58
10    10    27    0    82    236/0</pre><script>top.getBET();</script>";
 string result=Regex.Match(str,@"(?is)(?<=<meta[^>]*?>.*?<pre[^>]*?>).*?(?=</pre>)").Value;
 var list=from x in  Regex.Split(result,@"\r\n")
          let temp= Regex.Split(x,"\\s+")
          where temp.Count()>1
          group x by new{a=temp[0],b=temp[1]} into g
          select new
          {
            a=g.Key.a,
            b=g.Key.b,
            c=g.Sum(n=>Convert.ToInt32(Regex.Split(n,"\\s+")[2])),
            d=g.Sum(n=>Convert.ToInt32(Regex.Split(n,"\\s+")[3]))
          };
list.ToList().ForEach(l=>Console.WriteLine("{0}\t{1}\t{2}\t{3}\t",l.a,l.b,l.c,l.d));/*
1    1    932    932    
1    9    6    0    
2    1    145    145    
2    6    328    328    
2    13    54    54    
3    10    2365    2365    
3    11    2583    2583    
4    1    2880    2880    
4    8    296    296    
5    1    0    597    
5    2    0    2168    
6    2    1166    1166    
6    8    403    403    
7    1    1093    1093    
7    5    262    804    
8    2    761    978    
9    1    187    187    
10    3    1665    1665    
10    8    298    298    
10    10    27    0
*/
怎么让上面的结果在dataGridView上显示出来。

解决方案 »

  1.   

    DataGridview设置4个字段(我看你的结果是4个),然后么,如果是我的话,我会费劲一些,定一个datatable,添加4个datacolumn,然后将结果添加到这个datatable中,至于显示么,就简单了,datagrid的datasource即可
      

  2.   

    都很急的,急也要把问题说清楚一下,你是想显示什么?正则中的表达?,@"(?is)(?<=<meta[^>]*?>.*?<pre[^>]*?>).*?(?=</pre>)"吗?
      

  3.   

    正则结果是一堆东西,看这个样子大概可以按照行来读取,每行可作为数据的项,对于每项可用split进行分割就行了吧
      

  4.   

    list.ToList().ForEach(l=>Console.WriteLine("{0}\t{1}\t{2}\t{3}\t",l.a,l.b,l.c,l.d));
    这一段怎么分理出四个变量出来啊
      

  5.   

    改成在这里列出来
    dataGridView1.Rows.Add("","","","");//增加行