关闭

.NET用正则表达式从HTML中提取信息

标签: 正则表达式.nethtmljavascriptclassregex
2446人阅读 评论(1) 收藏 举报
分类:

Regex aRegex = new Regex("</?a[^>]*>");
string content = @"<table border=0 cellspacing=0 cellpadding=0 width=100% ><tr><td width=6></td>
  <td width='5' style='line-height:20pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.29,23.1247)' title='东山总站2'> 东山总站2 </a></td>

<td width='5' style='line-height:40pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.283,23.1275)' title='中山医站2'> 中山医 </a></td>

<td width='5' style='line-height:26pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.28,23.1295)' title='烈士陵园站'> 烈士陵园 </a></td>

<td width='5' style='line-height:40pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.272,23.1296)' title='大东门站2'> 大东门 </a></td>

<td width='5' style='line-height:40pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.27,23.1294)' title='农讲所站1'> 农讲所 </a></td>

<td width='5' style='line-height:40pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.266,23.1262)' title='文德路站2'> 文德路 </a></td>

<td width='5' style='line-height:26pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.264,23.1237)' title='北京路口站'> 北京路口 </a></td>

<td width='5' style='line-height:80pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.266,23.1184)' title='南关站'> 南关 </a></td>

<td width='5' style='line-height:26pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.262,23.1168)' title='海珠广场(侨光东)站'> 海珠广场 </a></td>

<td width='5' style='line-height:26pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.252,23.1129)' title='爱群大厦站'> 爱群大厦 </a></td>

<td width='5' style='line-height:26pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.242,23.1115)' title='六二三路站1'> 六二三路 </a></td>

<td width='5' style='line-height:26pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.238,23.112)' title='市中医院站'> 市中医院 </a></td>

<td width='5' style='line-height:20pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.231,23.1023)' title='芳村隧道口站'> 芳村隧道口 </a></td>

<td width='5' style='line-height:40pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.229,23.0969)' title='花地湾站'> 花地湾 </a></td>

<td width='5' style='line-height:20pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.226,23.0924)' title='芳村合兴苑站'> 芳村合兴苑 </a></td>

<td width='5' style='line-height:26pt;'>东漖北路</td>

<td width='5' style='line-height:80pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.222,23.0872)' title='汾水站'> 汾水 </a></td>

<td width='5' style='line-height:40pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.224420213932,23.0857201443167)' title='浣花路站'> 浣花路 </a></td>

<td width='5' style='line-height:26pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.229,23.0829)' title='芳村客运站'> 芳村客运 </a></td>

<td width='5' style='line-height:20pt;'><a class='linesta' href='javascript:OpenStatiomMapWin(113.223,23.0787)' title='龙溪大道东(教师新村)站'> 龙溪大道东 </a></td>

<td width='5' style='line-height:16pt;'>芳村花园总站</td>
    </table>";

content = aRegex.Replace(content, "");
Regex htmlRegex = new Regex(@"<td[^>]*>(?<Content>[^<]*)</td>");

MatchCollection mc = htmlRegex.Matches(content);
foreach (Match m in mc)
{
Console.WriteLine(m.Groups["Content"].Value);
}

运行结果:
 东山总站2
 中山医
 烈士陵园
 大东门
 农讲所
 文德路
 北京路口
 南关
 海珠广场
 爱群大厦
 六二三路
 市中医院
 芳村隧道口
 花地湾
 芳村合兴苑
东漖北路
 汾水
 浣花路
 芳村客运
 龙溪大道东
芳村花园总站

基本思路是先把<a标签全部去掉,然后只获得<td></td>里面的内容
都是正则表达式的基本用法,哪个方法不懂参考MSDN中System.Text.RegularExpressions命名空间

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:192796次
    • 积分:2884
    • 等级:
    • 排名:第12357名
    • 原创:95篇
    • 转载:4篇
    • 译文:0篇
    • 评论:35条
    文章分类
    最新评论