<a href="http://www.abc.net" class="menua" target="_blank">网站</a> | <a href="111.asp" class="menua">联系我们</a>
<A href="http://www.yuixm.com/c37102.aspx">联系我们</A>
<A href="http://www.yuixm.com/c37102.aspx"><FONT style="FONT-SIZE: 12px;font-weight: normal;">联系我们</font></A> </td>
<a href="news.asp" class="menua">新闻</a> | <a href="111.asp" class="menua"><FONT style="FONT-SIZE: 12px;font-weight: normal;">联系我们</font></a> 以上为待匹配文本;
需要匹配出"联系我们"的href属性。共四个111.asp(2个)、http://www.yuixm.com/c37102.aspx(2个);正则表达式如何写?
<A href="http://www.yuixm.com/c37102.aspx">联系我们</A>
<A href="http://www.yuixm.com/c37102.aspx"><FONT style="FONT-SIZE: 12px;font-weight: normal;">联系我们</font></A> </td>
<a href="news.asp" class="menua">新闻</a> | <a href="111.asp" class="menua"><FONT style="FONT-SIZE: 12px;font-weight: normal;">联系我们</font></a> 以上为待匹配文本;
需要匹配出"联系我们"的href属性。共四个111.asp(2个)、http://www.yuixm.com/c37102.aspx(2个);正则表达式如何写?
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
richTextBox2.Text += m.Groups["url"].Value + "\n";
}
任意多个后面不是a标签 我怎么感觉是这样写(?:.*(?!</a>)),反向声明:模式不应该紧邻在声明的后面,怎么这个任意多个(.)*跑到模式</a后面来了,修饰关系搞不明白了。再麻烦你一下 谢谢
(?!abc).
表示后面不是“abc”的任意一个字符
((?!abc).)*
就表示,这样的字符任意多个,而实际应用中,这个字符并不需要被捕获,所以使用非捕获组
(?:(?!abc).)*这样做的目的,是为了找到离“联系我们”最近的那个链接,而不充许中间再出现a标签,否则在匹配
<a href="news.asp" class="menua">新闻</a> | <a href="111.asp" class="menua"><FONT style="FONT-SIZE: 12px;font-weight: normal;">联系我们</font></a>
时,匹配到的将是news.asp,而不是111.asp了