现在利用C#写了一个程序,可以获取网页的源码。但是现在还面临一个问题,就是怎么样快速有效的提取一个网页的源码中所有的<a href="URL"/></a>这样的标记中,所有的URL。
我自己写了一个,效率比较低。想问一下各位有什么好的方法没有。
最好是能用一个效率比较高的方法或者什么能一下子提取出所有的URL
有没有解决方案
我知道正则表达式怎么写。重要是代码怎么实现的部分~在c#中怎么来实现这样的结果~效率高点的方法,一次取出或者循环取出~
给个代码示例吧~
好像写到c#里面执行不了
我现在想用在一个div标记内所有的URL是这样的格式
text
然后我写的是
Regex("(?)")
求指教~
Regex("(?)")
追问亲~还是不行昂~我试过了。取出来之后的ms的集合count为0
然后ms[0].value 就不对~异常 ~索引超出范围
因为0处没有数值~
已测试:
Regex("(?)")
点(.)匹配任意字符,(.*?)就是多个任意字符,同样,( *?)就是匹配多个空格。
试过了。。你的这个是可以的。我解决的时候写的是~.+?)\".+?>
本回答被提问者和网友采纳我明白 怎么用正则表达式来写~ 重要的是 怎么在c#代码中 取出所有 URL
追答string pattern = ".+?)\".+?>";
Regex reg = new Regex(pattern);
MatchCollection matches = reg.Matches(网页源代码);
List list = new List();
foreach(Match mat in matches)
{
string result = mat.Group["url"].Value;
list.Add(result);
}
没有在vs里写,手写的,应该是这样的。list里就是全部的url。 知道分组(Group)这个概念就行了 。
这样效率比较高么~?