1.解释正则
1.1) (?<=(?i)<a\\s+[^>]*\\s*href=\"|'|\\s) 以什么开头,以<a + 一些空格,非结束标记>的字符串 + href + 一个空格或者一个双引号或者一个单引号开头
解释:(?<=a)这个就会匹配上以字母a开头的字符串,并且去掉这个开头的字母a
比如:用a123456xyz能匹配上12345xyz.
1.2) ?(?=\"|'|\\s)(?#>[^>]+</a>) 以什么结尾,以一个空格或者一个双引号或者一个单引号开头 + 非结束标记>的字符串 + </a>结尾
解释:?(?=xyz)这个就会匹配上以字符串xyz结尾的字符串,并且去掉这个结尾的字符串xyz
比如:用a123456xyz能匹配上a12345.
1.3) [^>]+ 除了开头,除了结尾,需要得到的文本.
解释:这就意思就是除了标记结束符号意外的所有字符,匹配1个或多个.
最终的目的就是要把<a pro='xxxx' href = 'www.google.com'>link</a>这类链接中的href的值抠出来.
2.匹配方法
string html = "含超链接的HTML文本.";
MatchCollection mcHref = System.Text.RegularExpressions.Regex.Matches(html,regexStr);
//然后再foreach循环就好了.一次全部匹配完.
System.Collections.ArrayList alResult = new System.Collections.ArrayList();
foreach (Match var in mcHref)
{
alResult.Add(var.Value);
}
3.错误在所难免,要是解释得有问题,继续砸砖头.