CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

用一句正则表达式,匹配出网上所有链接--“牛”问题需要“牛人”来解决。

楼主sharkshi(sharkshi)2005-08-18 16:39:59 在 .NET技术 / C# 提问

问题主旨:技术交流  
   
  需求:用一句表达式,就能匹配出网站上所有的链接,即匹配出url地址和标题。  
  例如:网页中有  
  ……<a   href='a.htm>abc</a>……  
   
  匹配后得到的结果:  
  链接:   a.htm  
  标题:abc  
   
  请以www.sina.com.cn或news.sina.com.cn网站为例。  
  运行你的程序后,就能取出网站上可以抓取得到的所有链接。  
   
  如果你是牛人,就请用你的牛刀!杀头大牛,给大家看。  
   
  问题点数:100、回复次数:22Top

1 楼fancyf(凡瑞)回复于 2005-08-18 17:20:34 得分 94

<a[\s\S]*?href=("(?<href>[^"]*)"|'(?<href>[^']*)'|(?<href>[^>\s]*))[^>]*?>(?<title>[\s\S]*?)</a>  
   
  public   static   Regex   regex   =   new   Regex(  
          @"<a[\s\S]*?href=(""(?<href>[^""]*)""|'(?<href>[^']*)'|(?<href"  
          +   @">[^>\s]*))[^>]*?>(?<title>[\s\S]*?)</a>",  
          RegexOptions.IgnoreCase   |   RegexOptions.Compiled);  
   
   
  两个html页面放在一起,一共匹配了2416个,而</a>一共有2417个,不知道落下了哪一个^_^Top

2 楼shrinerain(圣影雨)回复于 2005-08-18 17:40:12 得分 0

来晚了一步,jf  
  Top

3 楼linuxyf(率人哥哥)回复于 2005-08-18 17:41:35 得分 5

Expression:      
   
  <a[\s]+[^>]*?href[\s]?=[\s\"\']+(.*?)[\"\']+.*?>([^<]+|.*?)?<\/a>  
   
     
  Description:   This   regex   will   extract   the   link   and   the   link   title   for   every   a   href   in   HTML   source.   Useful   for   crawling   sites.   Note   that   this   pattern   will   also   allow   for   links   that   are   spread   over   multiple   lines.  
  Matches:   [<a   href='http://www.regexlib.com'>Text</a>],   [<a   href="...">Text</a>]    
  Non-Matches:   [all   other   html   tags]Top

4 楼fancyf(凡瑞)回复于 2005-08-18 18:02:09 得分 0

楼上的表达式匹配了660个Top

5 楼wzhnet(wzh_net)回复于 2005-08-18 18:07:27 得分 0

bs   一下Top

6 楼sharkshi(sharkshi)回复于 2005-08-18 18:11:30 得分 0

fancyf(凡瑞)   老兄,用你的那个表达式,我这面没有匹配到你所说的那么多的。  
  Top

7 楼shrinerain(圣影雨)回复于 2005-08-18 18:12:04 得分 0

楼上不厚道。。。  
  发现fancyf(凡瑞)好有空啊呵呵~~  
  好像我每次来都看得到。。。Top

8 楼fancyf(凡瑞)回复于 2005-08-18 19:09:02 得分 0

to   sharkshi(sharkshi):  
  典型的水土不服^_^Top

9 楼vicon(排骨面(说过多少次了!要团结,眼睛要看着别人的长处!))回复于 2005-08-18 21:48:12 得分 1

正则表达式一直是我头疼的东西...   关注一下,不嫌弃,也给我点分吧。谢谢!Top

10 楼teacher1998(英语+asp.net+MsSQL)回复于 2005-08-19 00:57:44 得分 0

珍藏一下,以后用得着!  
  fancyf(凡瑞)老哥,怎还不睡呢?Top

11 楼yymailb()回复于 2005-08-19 02:20:05 得分 0

帮顶,顺便搭车问一下,VC6的程序升到VC   NET下要怎么修改才能用Regex类啊?Top

12 楼sharkshi(sharkshi)回复于 2005-08-19 08:29:37 得分 0

兄弟姐妹们,顶!!!!!!!!!!!Top

13 楼sharkshi(sharkshi)回复于 2005-08-19 08:32:24 得分 0

to     fancyf(凡瑞)   兄弟  
  能否把你测试的源码给我测试一下,我这面不知是什么原因,匹配出来的东西,很少。Top

14 楼sharkshi(sharkshi)回复于 2005-08-19 08:55:58 得分 0

fancyf(凡瑞)   真是牛,你正则我匹配出来了。牛人就是牛!  
   
  Top

15 楼grf601006617(宫崎锋)回复于 2005-08-19 09:10:52 得分 0

真的有这么厉害吗~?如果是真的的话那就牛了~!Top

16 楼Jamestan(情商蛋蛋)回复于 2005-08-19 09:14:10 得分 0

GZTop

17 楼lyb_abiandbel(专注于OO分析与设计)回复于 2005-08-19 09:15:35 得分 0

学习Top

18 楼langmafeng(乞力马扎罗)回复于 2005-08-19 10:03:59 得分 0

markTop

19 楼quanyi(长生天)回复于 2005-08-19 10:19:53 得分 0

xuexiTop

20 楼sharkshi(sharkshi)回复于 2005-08-19 11:29:29 得分 0

结贴了,给分了。  
  感谢牛人们的大力支持。愿大家技术得到提高,我也解决了问题。 ^_^Top

21 楼hainang1234(海浪)回复于 2005-08-19 15:26:26 得分 0

xuexiTop

22 楼chinawn(动性忍心)回复于 2006-01-09 08:56:22 得分 0

收藏Top

相关问题

  • 匹配<td 所有字符 > 的正则表达式怎么写?
  • 正则表达式匹配
  • VS.NET中匹配所有<script>...</script>的正则表达式怎样写?
  • 正则表达式 ---- 模式匹配
  • 正则表达式的匹配问题
  • 帮忙写个正则表达式,要求匹配从#ABC开始到}结束的所有文字
  • 正则表达式问题,匹配所有的script的src属性换行符配不了
  • ■■■正则表达式:如何将所有包含某一个字符的td都匹配出来?
  • 请教一个正则表达式,如何匹配所有的超连接<a ....> ... </a>这样,或者包括所有可能的超连接
  • 用正则表达式怎样匹配正反斜杠??

关键词

  • 网站
  • html
  • 匹配
  • fancyf
  • 表达式
  • regex
  • 牛
  • 链接
  • 问题
  • 得到

得分解答快速导航

  • 帖主:sharkshi
  • fancyf
  • linuxyf
  • vicon

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo