<tr height="34" align="center">
<td height="34">a</td>
<td height="34">aa</td>
<td height="34">aaa</td>
<td height="34">aaaa</td>
<td>aaaaa</td>
<td>aaaaaa</td>
<td>aaaaaaa</td>
<!-- <td align="middle"></td> -->
<td >aaaaaaaa</td>
<td height="34">aaaaaaaaa</td>
tr>我想要获取上述html片段中的 <td height="34">a</td>
<td height="34">aa</td>
<td height="34">aaa</td>
<td height="34">aaaa</td>
<td>aaaaa</td>
<td>aaaaaa</td>
<td>aaaaaaa</td>
<!-- <td align="middle"></td> -->
<td >aaaaaaaa</td>
<td height="34">aaaaaaaaa</td>正则表达式应该怎么写啊,谢谢,这只是html的一小部分,原文很长,所以请不要说用字符串操作类之类的方法,那样不好用。感谢大家了,实在没分了,对不住!

解决方案 »

  1.   

    请问是否是在所有<tr></tr>之间的数据?
    试下: string sourceString = @"<tr height=""34"" align=""center"">
    <td height=""34"">a</td>
    <td height=""34"">aa</td>
    <td height=""34"">aaa</td>
    <td height=""34"">aaaa</td>
    <td>aaaaa</td>
    <td>aaaaaa</td>
    <td>aaaaaaa</td>
    <!-- <td align=""middle""></td> -->
    <td >aaaaaaaa</td>
    <td height=""34"">aaaaaaaaa</td>
    </tr>";
    string pattern = @"(?<=<tr[^>]*>)[\s\S]+?(?=</tr>)";
    System.Text.RegularExpressions.Match result = Regex.Match(sourceString,pattern,System.Text.RegularExpressions.RegexOptions.IgnoreCase|System.Text.RegularExpressions.RegexOptions.Multiline);

    if (result.Success)
    {
    //提示正确信息
    //WL("正确:" + result.Groups[1].Value);//输出
    WL("正确:" + result.Value);//输出
    }
    else
    {
    //提示错误信息
    WL("错误!");//输出
    }
      
    -----------------------------------------------
    msn:[email protected]
    请给我个与您交流的机会
      

  2.   

    Regex r = new Regex("<TR(.|\n)*?>(?<1>(.|\n)*?)</TR>", RegexOptions.IgnoreCase | RegexOptions.Compiled);
                Match m = r.Match(sourceString);
                if (r.Match(aa).Success)            
                {
                    MessageBox.Show(m.Groups[1].Value);
                }