C# .net 正则表达式 提取 <ul class="lists3">下的 li a href的值 10

代码如下想要的结果集是dcac.htmbbac.htm<ul><li><ahref=abc.htm>abc</a></li></ul><ulclass="lists3">... 代码如下 想要的结果集是
dcac.htm
bbac.htm

<ul>
<li>
<a href=abc.htm>abc</a>
</li>
</ul>
<ul class="lists3">
<li><a href="/dcac.htm">dcac</a></li>

<li><a href="bbac.htm">dcac</a></li>

</ul>
展开
 我来答
yugi111
2017-11-30 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
using System;
using System.Text.RegularExpressions;
public class Test {
    private static void ABC(string str, Regex[] rs, int index) {
            if(index>rs.Length-1){
                return;
            }
            Regex r=rs[index];
            Match m = r.Match(str);
            while (m.Success) {
                if(index == rs.Length - 1){
                    Console.WriteLine(m.Groups[1]);
                }
                for (int i = 0; i < m.Groups.Count; i++) {
                    Group group = m.Groups[i];
                    string vv=group.Value;
                    ABC(vv, rs, index+1);
                }
                m = m.NextMatch();
            }
    }
    public static void Main() {
        string str = "<ul class='lists3'>ss</ul><ul>\r\n<li>\r\n<a href=abc.htm>abc</a>\r\n</li>\r\n</ul>\r\n<UL class=\"lists3\">\r\n<li><a href=\"/dcac.htm\">dcac</a></li>\r\n\r\n<li><a href=\"bbac.htm\">dcac</a></li>\r\n\r\n</ul>";
        Regex r1 = new Regex("(?i)<ul[^>]+class[=\"\'\\s]+lists3[\"\']?[^>]*>(?:(?!<\\/ul>)[\\s\\S])+<\\/ul>");
        Regex r2 = new Regex("(?i)<li[^>]*>(?:(?!<\\/li>)[\\s\\S])+<\\/li>");
        Regex r3 = new Regex("(?i)<a[^>]+href[=\"\'\\s]+([^\"\'>]*)[\"\']?[^>]*>");
        Regex[] rs = {r1,r2,r3};
        ABC(str, rs, 0);
    }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式