我有类似下面的一段HTML代码:
<p><a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20475480" target="_blank">赴<FONT COLOR=RED>河南</FONT>、山东学习考察报告</a></p>
<p><a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20475095" target="_blank"><FONT COLOR=RED>河南</FONT>唐河县麦茬棉种植情况及高产经验</a></p>
<p><a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20474445" target="_blank">从棉纺大省看产业现状(连载之二)——山东、江苏及<FONT COLOR=RED>河南</FONT>等省份棉纺织产业情况调研</a></p>
<p><a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20474131" target="_blank">桂东早古生代<FONT COLOR=RED>地层</FONT>碎屑锆石U-Pb同位素年代学及其对华夏陆块加里东期构造事件性质的约束</a></p><p>对广西东部大瑶山一大明山地区分别位于早古生代不整合面之下和之上的寒武纪和泥盆纪地……</p>
<p><a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20474111" target="_blank">构造演化对葡南黑帝庙油层油气分布的控制</a></p><p>黑帝庙油层属松辽盆地上部含油组合,该层从1967年勘探至今已经有多口井发现工业油气流,……</p>里面可能会出现多个<a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20475480" target="_blank">赴<FONT COLOR=RED>河南</FONT>、山东学习考察报告</a>这样的超链接。我现在想把这段代码里面所有的超链接都取出来,也就是<a ...和</a>之间所有的内容,有几个取几个,放一个数组里面去,而且链接是完整的,比如:<a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20475480" target="_blank">赴<FONT COLOR=RED>河南</FONT>、山东学习考察报告</a>,我该如何去做,谢谢大家!!!
<p><a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20475480" target="_blank">赴<FONT COLOR=RED>河南</FONT>、山东学习考察报告</a></p>
<p><a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20475095" target="_blank"><FONT COLOR=RED>河南</FONT>唐河县麦茬棉种植情况及高产经验</a></p>
<p><a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20474445" target="_blank">从棉纺大省看产业现状(连载之二)——山东、江苏及<FONT COLOR=RED>河南</FONT>等省份棉纺织产业情况调研</a></p>
<p><a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20474131" target="_blank">桂东早古生代<FONT COLOR=RED>地层</FONT>碎屑锆石U-Pb同位素年代学及其对华夏陆块加里东期构造事件性质的约束</a></p><p>对广西东部大瑶山一大明山地区分别位于早古生代不整合面之下和之上的寒武纪和泥盆纪地……</p>
<p><a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20474111" target="_blank">构造演化对葡南黑帝庙油层油气分布的控制</a></p><p>黑帝庙油层属松辽盆地上部含油组合,该层从1967年勘探至今已经有多口井发现工业油气流,……</p>里面可能会出现多个<a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20475480" target="_blank">赴<FONT COLOR=RED>河南</FONT>、山东学习考察报告</a>这样的超链接。我现在想把这段代码里面所有的超链接都取出来,也就是<a ...和</a>之间所有的内容,有几个取几个,放一个数组里面去,而且链接是完整的,比如:<a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20475480" target="_blank">赴<FONT COLOR=RED>河南</FONT>、山东学习考察报告</a>,我该如何去做,谢谢大家!!!
<a\s.*?</a>
Match m = Regex.Match(text, "<a\s.*? </a>", RegexOptions.IgnoreCase);不对。
string html = "你的HTML";
Regex re = new Regex(@"(?si)<a\b.*?</a>");
MatchCollection mc = re.Matches(html);
String pattern=@"<a.*?>([.\s\S]*?)</a>";
RegexOptions ro=RegexOptions.Ignorecase|RegexOptions.Multiline;
MatchCollection mc=Regex.Matches(content,pattern,ro);
foreach(Match m in mc){
String addr=m.Groups[1].Value.ToString();
Response.Write("地址"+addr);
}
Regex re = new Regex(@"<a[^>]*href=(""(?<href>[^""]*)""|'(?<href>[^']*)'|(?<href>[^\s>]*))[^>]*>(?<text>.*?)</a>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
Match m = re.Match(s);
if(m.Success)
{
string link = m.Groups["href"].Value;
string text = Regex.Replace(m.Groups["text"].Value,"<[^>]*>","");
Console.WriteLine("link:{0}\ntext:{1}", link, text);
}
MatchCollection mc = Regex.Matches(str, @"<a[^>]*href=(['""]?)(?<url>[^""\s>]*)\1[^>]*>(?<text>[\s\S]*?)</a>", RegexOptions.IgnoreCase);
foreach (Match m in mc)
{
str += m.Groups["url"].Value + "\n";
str += m.Groups["text"].Value + "\n";
}
参考
MatchCollection mc = Regex.Matches(yourStr, @"<a[^>]*>(?:(?!</a>)[\s\S])*</a>", RegexOptions.IgnoreCase);
foreach (Match m in mc)
{
list.Add(m.Value);
}
新建一个文件,把数据拷贝到这个文件。
<p> <a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20475480" target="_blank">赴 <FONT COLOR=RED>河南 </FONT>、山东学习考察报告 </a> </p>
<p> <a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20475095" target="_blank"> <FONT COLOR=RED>河南 </FONT>唐河县麦茬棉种植情况及高产经验 </a> </p>
<p> <a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20474445" target="_blank">从棉纺大省看产业现状(连载之二)——山东、江苏及 <FONT COLOR=RED>河南 </FONT>等省份棉纺织产业情况调研 </a> </p>
<p> <a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20474131" target="_blank">桂东早古生代 <FONT COLOR=RED>地层 </FONT>碎屑锆石U-Pb同位素年代学及其对华夏陆块加里东期构造事件性质的约束 </a> </p> <p>对广西东部大瑶山一大明山地区分别位于早古生代不整合面之下和之上的寒武纪和泥盆纪地…… </p>
<p> <a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20474111" target="_blank">构造演化对葡南黑帝庙油层油气分布的控制 </a> </p> <p>黑帝庙油层属松辽盆地上部含油组合,该层从1967年勘探至今已经有多口井发现工业油气流,…… </p> 点排序按钮,选择“比较由正则表达式定义的字符串”,输入下面的正则表达式和目标字符串(没有空格):
正则表达式:<a*</a>
目标字符串:%01%02%03点“将目标字符串拷贝到剪贴板”,即可将你要的超链接拷贝到剪贴板:
<a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20475480" target="_blank">赴 <FONT COLOR=RED>河南 </FONT>、山东学习考察报告 </a>
<a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20475095" target="_blank"> <FONT COLOR=RED>河南 </FONT>唐河县麦茬棉种植情况及高产经验 </a>
<a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20474445" target="_blank">从棉纺大省看产业现状(连载之二)——山东、江苏及 <FONT COLOR=RED>河南 </FONT>等省份棉纺织产业情况调研 </a>
<a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20474131" target="_blank">桂东早古生代 <FONT COLOR=RED>地层 </FONT>碎屑锆石U-Pb同位素年代学及其对华夏陆块加里东期构造事件性质的约束 </a>
<a href="ShowDetail.aspx?dbname=mds_qikan&mfn=20474111" target="_blank">构造演化对葡南黑帝庙油层油气分布的控制 </a>