需要匹配的原文:
<tr>
<td style="text-align:center;">2009-11-06</td>
<td><span class="Ared">1106万元</span></td>
<td><span class="Ared">195万元</span></td>
<td><span class="Agreen">-425万元</span></td>
<td><span class="Agreen">-233万元</span></td>
<td><span class="Ared">1569万元</span></td>
<td>8674万元</td>
<td><span class="Ared">0.559%</span></td>
</tr>
<tr>
<td style="text-align:center;">2009-11-05</td>
<td><span class="Ared">82万元</span></td>
<td><span class="Agreen">-123万元</span></td>
<td><span class="Ared">122万元</span></td>
<td><span class="Ared">163万元</span></td>
<td><span class="Agreen">-78万元</span></td>
<td>6808万元</td>
<td><span class="Ared">0.751%</span></td>
</tr>
小弟写的正则表达式如下:
^<tr>\s*<td\s*.*>(?<Date>\d{4}-\d{2}-\d{2})<\/td>\s*<td\s*>\s*<span\s*.*>(?<F001>\d+万元)\s*<\/span><\/td><td\s*>\s*<span\s*.*>(?<F002>\d+万元)\s*<\/span><\/td><td\s*>\s*<span\s*.*>(?<F003>\d+万元)\s*<\/span><\/td><td\s*>\s*<span\s*.*>(?<F004>\d+万元)\s*<\/span><\/td><td\s*>\s*<span\s*.*>(?<F005>\d+万元)\s*<\/span><\/td><td\s*>(?<F006>\d+万元)<\/td><td\s*>\s*<span\s*.*>(?<F007>\d+.\d+%)\s*<\/span><\/td>\s*<\/tr>不知道哪里有误,请正则表达式的高手们帮忙看一下:急

解决方案 »

  1.   

    string reg="<tr>\s*<td[^>]*>(? <Date>\d{4}-\d{2}-\d{2}) <\/td>\s*<td\s*>\s*<span[^>]*>(? <F001>[^<>]*)\s*<\/span>\s*<\/td>\s*<td\s*>\s*<span[^>]*>(?<F002>[^<>]*)<\/span>\s*<\/td> <td\s*>\s*<span[^>]*>(?<F003>[^<>]*)<\/span>\s*<\/td>\s*<td\s*>\s*<span[^>]*>(? <F004>[^<>]*)<\/span>\s*<\/td>\s*<td\s*>\s*<span[^>]*>(?<F005>[^<>]*)<\/span><\/td>\s*<td\s*>(?<F006>[^<>]*)<\/td>\s*<td\s*>\s*<span[^>]*>(? <F007>[^<>]*)<\/span>\s*<\/td>\s*<\/tr>";
      

  2.   

    上面的多了些空格string reg=@"<tr>\s*<td[^>]*>(? <Date>[^<>]*)<\/td>\s*<td\s*>\s*<span[^>]*>(? <F001>[^<>]*)\s*<\/span>\s*<\/td>\s*<td\s*>\s*<span[^>]*>(?<F002>[^<>]*)<\/span>\s*<\/td> <td\s*>\s*<span[^>]*>(?<F003>[^<>]*)<\/span>\s*<\/td>\s*<td\s*>\s*<span[^>]*>(? <F004>[^<>]*)<\/span>\s*<\/td>\s*<td\s*>\s*<span[^>]*>(?<F005>[^<>]*)<\/span><\/td>\s*<td\s*>(?<F006>[^<>]*)<\/td>\s*<td\s*>\s*<span[^>]*>(? <F007>[^<>]*)<\/span>\s*<\/td>\s*<\/tr>";
      

  3.   

    最怕的就是这样提问的<tr>\s*<td[^>]*>(?<Date>\d{4}-\d{2}-\d{2})</td>\s*<td><span[^>]*>(?<F001>-?\d+万元)\s*</span></td>\s*<td><span[^>]*>(?<F002>-?\d+万元)\s*</span></td>\s*<td><span[^>]*>(?<F003>-?\d+万元)\s*</span></td>\s*<td><span[^>]*>(?<F004>-?\d+万元)\s*</span></td>\s*<td><span[^>]*>(?<F005>-?\d+万元)\s*</span></td>\s*<td>(?<F006>-?\d+万元)</td>\s*<td>\s*<span[^>]*>(?<F007>-?[.\d]+%)\s*</span></td>\s*</tr>
      

  4.   

    一定要写全吗            string test = @"<tr> 
    <td style=""text-align:center;"">2009-11-06</td> 
    <td><span class=""Ared"">1106万元</span></td> 
    <td><span class=""Ared"">195万元</span></td> 
    <td><span class=""Agreen"">-425万元</span></td> 
    <td><span class=""Agreen"">-233万元</span></td> 
    <td><span class=""Ared"">1569万元</span></td> 
    <td>8674万元</td> 
    <td><span class=""Ared"">0.559%</span></td> 
    </tr> 
    <tr> 
    <td style=""text-align:center;"">2009-11-05</td> 
    <td><span class=""Ared"">82万元</span></td> 
    <td><span class=""Agreen"">-123万元</span></td> 
    <td><span class=""Ared"">122万元</span></td> 
    <td><span class=""Ared"">163万元</span></td> 
    <td><span class=""Agreen"">-78万元</span></td> 
    <td>6808万元</td> 
    <td><span class=""Ared"">0.751%</span></td> 
    </tr> ";
                Regex reg = new Regex(@"<tr>\s*<td[^>]*>(?<Date>\d{4}-\d{2}-\d{2})</td>\s*<td><span[^>]*>(?<F001>-?\d+万元)\s*</span></td>\s*<td><span[^>]*>(?<F002>-?\d+万元)\s*</span></td>\s*<td><span[^>]*>(?<F003>-?\d+万元)\s*</span></td>\s*<td><span[^>]*>(?<F004>-?\d+万元)\s*</span></td>\s*<td><span[^>]*>(?<F005>-?\d+万元)\s*</span></td>\s*<td>(?<F006>-?\d+万元)</td>\s*<td>\s*<span[^>]*>(?<F007>-?[.\d]+%)\s*</span></td>\s*</tr>");
                MatchCollection mc = reg.Matches(test);
                foreach (Match m in mc)
                {
                    richTextBox2.Text += m.Groups["Date"].Value + "\n";
                    richTextBox2.Text += m.Groups["F001"].Value + "\n";
                    richTextBox2.Text += m.Groups["F002"].Value + "\n";
                    richTextBox2.Text += m.Groups["F003"].Value + "\n";
                    richTextBox2.Text += m.Groups["F004"].Value + "\n";
                    richTextBox2.Text += m.Groups["F005"].Value + "\n";
                    richTextBox2.Text += m.Groups["F006"].Value + "\n";
                    richTextBox2.Text += m.Groups["F007"].Value + "\n\n";
                }
    /*----------输出-------------
    2009-11-06
    1106万元
    195万元
    -425万元
    -233万元
    1569万元
    8674万元
    0.559%2009-11-05
    82万元
    -123万元
    122万元
    163万元
    -78万元
    6808万元
    0.751%
    */