日期:2014-05-19  浏览次数:20735 次

一个正规表达式的问题
<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
。现在为什么不行了呀?谢谢各位!!
问题解决马上结分。

------解决方案--------------------
因为不太清楚你的具体格式,也就是哪些会变,哪些不会,所以下面的写法可能显得有些繁琐,不过应该是可以达到你的要求

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();
}