用一句正则表达式,匹配出网上所有链接--“牛”问题需要“牛人”来解决。
问题主旨:技术交流
需求:用一句表达式,就能匹配出网站上所有的链接,即匹配出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




