<TR>
                <TD align=middle bgColor=#E3F0FF class=a1><strong>联系信息</strong></TD>
                <TD colspan="3" bgColor=#E3F0FF class=a1 id=customerVO7>&nbsp;</TD>
                </TR>
              <TR>
                <TD class=a1 align=middle bgColor=#E3F0FF>联 系 人</TD>
                <TD class=a1 id=customerVO7 bgColor=#F9F9F9>
                    张三</TD>
                <TD class=a1 align=middle bgColor=#E3F0FF>联系信息</TD>
                <TD class=a1 bgColor=#F9F9F9>
                    13000000000</TD>
              </TR>问一下 怎么用正则表达式 把“张三”和“13000000000”分别取出来 困扰好久,555555555555

解决方案 »

  1.   

    Regex reg = new Regex(@"(?is)<td\sclass=""a1""[^>]*>(.*?)</td>");
    MatchCollection mc = reg.Matches("");
    foreach (Match m in mc)
    {
       TextBox1.Text += m.Groups[1].Value + "\n";
    }
      

  2.   

    因为是很长一个table 并不是table里面所有的td里面的内容 我都需要
      

  3.   

            string str = @"<TR>
                          <TD align=middle bgColor=#E3F0FF class=a1><strong>联系信息</strong></TD>
                          <TD colspan=""3"" bgColor=#E3F0FF class=a1 id=customerVO7>&nbsp;</TD>
                          </TR>
                          <TR>
                          <TD class=a1 align=middle bgColor=#E3F0FF>联 系 人</TD>
                          <TD class=a1 id=customerVO7 bgColor=#F9F9F9>
                          张三</TD>
                          <TD class=a1 align=middle bgColor=#E3F0FF>联系信息</TD>
                          <TD class=a1 bgColor=#F9F9F9>
                          13000000000</TD>
                          </TR>";
            MatchCollection mc = Regex.Matches(str, "(?<=TD(?:(?!align=middle)(?!colspan)[^>])+>)[^<>]+");
            foreach (Match m in mc)
            {
                Console.WriteLine(m);
            }
      

  4.   

     Regex reg = new Regex(@"(?is)<td\sclass=a1\sbgColor=#F9F9F9[^>]*>(.*?)</td>");
      

  5.   

    这样也行 ,但是要改成这样(?is)<td\sclass=a1[^<>]+?bgColor=#F9F9F9[^>]*>(.*?)</td>