<tr bgcolor="#E6E6DC">                   <td width="16%" align="center"  height="20" bgcolor="#E6E6DC">                     <font color="#000000"> <b>                     估 价:
                    </b></font> </td>                  <td width="84%" height="20" bgcolor="#E6E6DC"> <font>                     RMB&nbsp;8,000-18,000
                    </font> </td>                </tr>re = new Regex(@"估.*?价.*?\n(?<price>[^\n]*?)</b></font>\s+</td>", RegexOptions.Singleline|RegexOptions.Compiled);
a.Price = re.Match(info).Groups["price"].Value;
以前用的是这个可以取出HTML里的RMB&nbsp;8,000-18,000
。现在为什么不行了呀?谢谢各位!!
问题解决马上结分。

解决方案 »

  1.   

    你现在的格式变了,当然用那个取不出了,HTML中哪些是不变的,比如“估 价:”以及其后的</tr>是一定存在的吗
      

  2.   

    估.*?价[\s\S]*?(?<price>RMB[^\s]*)
      

  3.   

    re = new Regex(@"<td[^>]*?>\s+<font>(?<price>[^<]*?)</font>", RegexOptions.Singleline|RegexOptions.Compiled);
    a.Price = re.Match(info).Groups["price"].Value.Trim();
      

  4.   

    因为不太清楚你的具体格式,也就是哪些会变,哪些不会,所以下面的写法可能显得有些繁琐,不过应该是可以达到你的要求string yourStr = ..................;
    string resultStr = "";
    Match m = Regex.Match(yourStr, @"估\s*价:([\s\S]*?)</tr>", RegexOptions.IgnoreCase);
    if (m.Success)
    {
         resultStr = Regex.Replace(m.Groups[1].Value, @"<[^>]*?>", "").Trim();
    }
      

  5.   

    <tr bgcolor="#E6E6DC"> 
                      <td width="16%" align="center"  height="20" bgcolor="#E6E6DC"> 
                        <font color="#000000"> <b> 
                        估 价:
                        </b></font> </td>
                      <td width="84%" height="20" bgcolor="#E6E6DC"> <font> 
                        RMB&nbsp;8,000-18,000
                        </font> </td>
                    </tr>
    只有8,000-18,000是变化的。其它的都是不变的。
      

  6.   

    如果能保证其格式不变,按你原来的写法,这样就可以了re = new Regex(@"估\s*?价[\s\S]*?<font>\s*(?<price>[\s\S]*?)\s*</font>\s*</td>", RegexOptions.Compiled);
    a.Price = re.Match(yourStr).Groups["price"].Value;
      

  7.   

    这个不用匹配HTML吗??
    楼上的你能不能写个小例子给我用一下,谢谢你的回答。
      

  8.   

    当然是要匹配HTML了,看你的例子,info难道不是HTML文本内容吗例子,随便拖两个richtextbox,一个贴HTML源字符串,一个显示结果,这里的yourStr就是HTML文本内容了,你测试一下就知道了
    string yourStr = richTextBox1.Text;
    Regex re = new Regex(@"估\s*?价[\s\S]*?<font>\s*(?<price>[\s\S]*?)\s*</font>\s*</td>", RegexOptions.Compiled);
    string resultStr = re.Match(yourStr).Groups["price"].Value;
    richTextBox2.Text = resultStr;
      

  9.   

    lxcnn(过客) 老兄能不能说一下你的QQ或MSN的??
      

  10.   

    最近太忙,基本上不上QQ或MSN,不过CSDN倒是每天都上,有事PM我就行了