如何使用正则表达式在td标记之间获取文本

时间:2012-04-04 08:40:00

标签: c# html regex

我想在html页面的td标签之间获取文本..

以下是页面的HTML代码的简短片段

 <tr align="right"><td>989</td><td>Kristoffer</td><td>Shameka</td>

 <tr align="right"><td>990</td><td>Lazaro</td><td>Deirdre</td>

 <tr align="right"><td>991</td><td>Torey</td><td>Shantell</td>

 <tr align="right"><td>992</td><td>Bill</td><td>Cherish</td>

 <tr align="right"><td>993</td><td>Bruno</td><td>Linsey</td>

 <tr align="right"><td>994</td><td>Genaro</td><td>Hali</td>

 <tr align="right"><td>995</td><td>Waylon</td><td>Tarah</td>

 <tr align="right"><td>996</td><td>Brittany</td><td>Annemarie</td>
     

。 。 。等等。

我想使用常规表达式提取单个单元格值(例如:第一列989,Kristoffer和Shameka)。帮助!

1 个答案:

答案 0 :(得分:2)

输入HTML是否总是具有正确和相同的结构,正则表达式不是您正在做的最佳解决方案 - 因为HTML不是常规语言,正如所解释的那样,正则表达式可能是一个糟糕的解决方案{ {3}}

如果您不能相信输入是相同的,那么您应该使用像here这样的HTML解析,它可以处理格式错误的HTML并查询其对象模型。

如果您知道输入始终具有相同的格式,在这种情况下,使用您显示的输入,您可以而且应该使用HTML Agility Pack来解析所需的值。

myHtmlString.Split(new []{@"<tr align=""right""><td>", "</td><td>", "</td>" },
                   StringSplitOptions.RemoveEmptyEntries)