日期:2014-05-17  浏览次数:20820 次

求教正则表达式如何引用分组捕获的结果再进行匹配,谢谢
表达式1:(?<GROUP1><a[^>]+?>)
表达式2:(?<GROUP2>href="[\s\S]*?")

表达式1:可以匹配出完整的a链接,分组名为“GROUP1”。
表达式2:可以匹配出href属性值的字符串

求教:如何将两个表达式写成一个表达式,就是说如何写才能做到“表达式2”引用“表达式1”捕获到的内容再进行匹配?

十分感谢大家的帮助。

以上只是简单的示例,请不要说直接使用“表达式2”就可以做到。
正则表达式 引用 分组 匹配

------解决方案--------------------
引用:
引用:引用:引用:<a[^>]+?href="(?<GROUP2>[\s\S]*?)">

谢谢版主的帮助。

请问如何写才能做到“表达式2”引用“表达式1”捕获到的内容再进行匹配
何必呢?一次匹配完。当然你也可以匹配两次(没必要)。

有必要……

看4楼代码,你可以先匹配a标签,再匹配a标签中的href

 string html = @"fdasf<a href=""http://www.baidu.com"" title=""百度"">";
        if (System.Text.RegularExpressions.Regex.IsMatch(html, @"<a[^>]*?>"))
        {
            //匹配a标签
            Match m = System.Text.RegularExpressions.Regex.Match(html, @"<a[^>]*?>");
            //再根据匹配到得a标签去匹配href
            string result = System.Text.RegularExpressions.Regex.Match(m.Value, @"<a[^>]*?href=""(?<Group2>[^""]*?)""[^>]*?>").Groups["Group2"].Value;
            Console.WriteLine(result);
        }