日期:2014-05-20  浏览次数:20890 次

如何用.net获取字符串里所有超链接的URL?

如何用.net获取字符串里所有超链接的URL?

比如下面的代码,如果获得所有的URL链接字符呢?


string= "111 <a   href=http://baidu.com/> 百度 </a> 2222222  
<a   href=http://www.alixixi.com/> 阿里西西网站 </a> 333333 ";

应该用正则式可以实现,但本人对正则了解很少,向各位求助,谢谢。

------解决方案--------------------
具体问题具体分析,不同内容写出的正则表达式是不一样的,就楼主所给实例,可以这样用正则

string yourStr = richTextBox1.Text;
MatchCollection mc = Regex.Matches(yourStr, @ " <a\s+href=(? <url> [^\s> ]*?)> (? <name> [^ <]*?) </a> ", RegexOptions.IgnoreCase);
foreach (Match m in mc)
{
richTextBox2.Text += m.Groups[ "url "].Value + "\n "; //url链接
richTextBox2.Text += m.Groups[ "name "].Value + "\n "; //网站各称
}
------解决方案--------------------
foreach (Match vMatch in
Regex.Matches(s, @ " <a href=([\w\:\/\.]+)[^> ]*> "))
{
textBox1.AppendText(vMatch.Result( "$1 ") + "\r\n ");
}