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

原创 2006年06月02日 15:56:00

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命名空间

asp.net正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例

无论你用什么语言,正则表达式的处理方法都是非常灵活、高效的,尤其是对某些字符串的抓取、过滤方面,更显其优势。正则表达式的写法通常比较简单,几行短代码便能轻松完成看似很复杂的事情,更值得称赞的是,它的执...

asp.net正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例

无论你用什么语言,正则表达式的处理方法都是非常灵活、高效的,尤其是对某些字符串的抓取、过滤方面,更显其优势。正则表达式的写法通常比较简单,几行短代码便能轻松完成看似很复杂的事情,更值得称赞的是,它的执...

asp.net正则表达式提取网页网址、标题、图片,滤所有HTML标签

====================================================== 注:本文源代码点此下载 =============================...

ASP.NET正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例

无论你用什么语言,正则表达式的处理方法都是非常灵活、高效的,尤其是对某些字符串的抓取、过滤方面,更显其优势。 正则表达式的写法通常比较简单,几行短代码便能轻松完成看似很复杂的事情,更值得称赞的是...
  • my98800
  • my98800
  • 2016年07月11日 08:27
  • 797

C# .Net使用正则表达式去除HTML标记和空格

using System.Text.RegularExpressions; 在进行数据采集,显示文章摘要,内容计数等情况下,需要清除源代码中的html标签,空格,style,script等标签. ...
  • atco
  • atco
  • 2012年02月24日 11:25
  • 5823

asp.net正则表达式提取网址、标题、图片等

无论你用什么语言,正则表达式的处理方法都是非常灵活、高效的,尤其是对某些字符串的抓取、过滤方面,更显其优势。 正则表达式的写法通常比较简单,几行短代码便能轻松完成看似很复杂的事情,更值得称赞的是...
  • Pet8766
  • Pet8766
  • 2012年07月23日 15:05
  • 580

关于VB.net 中的正则表达式(实例)

今天研究了一下关于VB.net 中的正则表达式 下面代码的功能就是使得TextBox输入框中只能输入“数字和26个英文字母”(代码必须放在TextBox的KeyPress的事件里面) --...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:.NET用正则表达式从HTML中提取信息
举报原因:
原因补充:

(最多只允许输入30个字)