怎么把下面的数据先用正则提取出来,再汇总<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>

解决方案 »

  1.   


    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;//你可以这样先取值  不知你想怎么分组统计
      

  2.   

    using System.Text.RegularExpressions;
    Regex regex = new Regex(@"([\d\.]+) ([\d\.]+) ([\d\.]+) ([\d\.]+) ([\d\.]+) ([\d\.]+/[\d\.]+)", RegexOptions.None);Group1-6就是每行的数字,剩下的需要你自己处理。
      

  3.   


    void Main()
    {
    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
    */
    }