c#正则获取html里面a标签href的值

时间:2022-12-09 09:04:42

获取单个a中href的值:

 

string str = "<a href=\"http://www.itsve.com\">下载</a>";
string reg = @"<a[^>]*href=([""'])?(?<href>[^'""]+)\1[^>]*>";
var item = Regex.Match(str, reg, RegexOptions.IgnoreCase);
Console.WriteLine(item.Groups[
"href"].Value);

 

 

获取多个a中的href的值:

string str = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"
+ "<html xmlns=\"http://www.w3.org/1999/xhtml\">"
+ "<head>"
+ "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>"
+ "<meta content=\"怎样用c 正则表达式解析HTML中a 超链接 址 .NET技术 ASP.NET\" name=\"Keywords\"/>"
+ "<meta content=\"是用c 正则表达式 是在后台 不是js正则表达式 是要获取a href属性值\" name=\"description\"/>"
+ "<title>怎样用c#正则表达式解析HTML中a的超链接地址 - .NET技术 / ASP.NET</title>"
+ "<li><a href=\"http://news.csdn.net/\" target=\"_blank\">资讯</a>|</li>"
+ "<li><a href=\"http://mobile.csdn.net/\" target=\"_blank\">移动</a>|</li>"
+ "<li><a href=\"http://cloud.csdn.net/\" target=\"_blank\">云计算</a>|</li>"
+ "<link href=\"http://c.csdn.net/bbs/t/5/t5.css\" rel=\"stylesheet\" type=\"text/css\" />"
+ "<link href=\"http://www.csdn.net/images/favicon.ico\" rel=\"SHORTCUT ICON\" />";
Regex reg
= new Regex(@"(?is)<a[^>]*?href=(['""\s]?)(?<href>[^'""\s]*)\1[^>]*?>");
MatchCollection match
= reg.Matches(str);
foreach (Match m in match)
{
Response.Write(m.Groups[
"href"].Value + "<br/>");
}

 

//C#使用正则表达式获取HTML代码中a标签里包含指定后缀的href的值,表达式如下:

Regex regImg
= new Regex(@"(?is)<a[^>]*?href=(['""\s]?)(?<href>([^'""\s]*\.doc)|([^'""\s]*\.docx)|([^'""\s]*\.xls)|([^'""\s]*\.xlsx)|([^'""\s]*\.ppt)|([^'""\s]*\.txt)|([^'""\s]*\.zip)|([^'""\s]*\.rar)|([^'""\s]*\.gz)|([^'""\s]*\.bz2))\1[^>]*?>"