当前位置: 代码迷 >> Java Web开发 >> 那位大哥可以帮小弟我写个正则表达式
  详细解决方案

那位大哥可以帮小弟我写个正则表达式

热度:5607   发布时间:2013-02-25 21:20:47.0
那位大哥可以帮我写个正则表达式啊
HTML code
<div class="notice_body"><div id="demo"><div id="demo1"><ul class="nl"><li><span class="gray dateR">04-07</span><a href="show.aspx?id=16446&amp;cid=37" target="_blank" title="广西五一劳动奖章候选人公示">广西五一劳动奖章候选人</a></li><li><span class="gray dateR">04-05</span><a href="trans.aspx?id=16419" target="_blank" title="2012年度广西重大课题研究招标公告">2012年度广西重大课题研</a></li></ul> <br><br><br><br><br><br><br><br></div><div id="demo2"></div>

我是在没办法了,到这里来求救了,
这是个网页,我要用程序抓取上面代码中的一些信息,有<a></a>标签里面的内容和<a>的超链接。
从上面的html应该获取到的信息是show.aspx?id=16446&amp;cid=37 广西五一劳动奖章候选人公示">广西五一劳动奖章候选人 trans.aspx?id=16419 2012年度广西重大课题研究招标公告">2012年度广西重大课题研。

好像可以用HTMLParser来作,但是我不太清楚怎么用
希望大家帮帮忙了


------解决方案--------------------------------------------------------
Java code
String str ="<li><span class=\"gray dateR\">04-07</span><a href=\"show.aspx?id=16446&amp;cid=37\" target=\"_blank\" title=\"广西五一劳动奖章候选人公示\">广西五一劳动奖章候选人</a></li>"+        "<li><span class=\"gray dateR\">04-05</span><a href=\"trans.aspx?id=16419\"target=\"_blank\" title=\"2012年度广西重大课题研究招标公告\">2012年度广西重大课题研</a></li>"+        "</ul><br><br><br><br><br><br><br><br></div><div id=\"demo2\"></div>";        Pattern p=Pattern.compile("<a\\s+.*?>?</a>");        Matcher m = p.matcher(str);                while(m.find()){            System.out.println(m.group());        }不管有没有用,先给你救救急,看用的上么
------解决方案--------------------------------------------------------
Java code
//效率有点低,不过功能能实现吧。。public static void main(String[] args) {        String str =                "<a href=\"show.aspx?id=16446&amp;cid=37\" target=\"_blank\" title=\"广西五一劳动奖章候选人公示\">广西五一劳动奖章候选人</a>"+                "<div class=\"notice_body\">" +                "<div id=\"demo\"><div id=\"demo1\">"+                "<ul class=\"nl\">" +                "<li><span class=\"gray dateR\">04-07</span>" +                "<a href=\"show.aspx?id=16446&amp;cid=37\" " +                "target=\"_blank\" title=\"广西五一劳动奖章候选人公示\">广西五一劳动奖  章候选人   </a></li>"+                "<li><span class=\"gray dateR\">04-05</span>" +                "<a href=\"trans.aspx?id=16419\"target=\"_blank\" title=\"2012年度广西重大课题研究招标公告\">2012年度广西重大课题研</a></li>"+                "</ul><br><br><br><br><br><br><br><br></div><div id=\"demo2\"></div>";        Pattern p=Pattern.compile("<div class=\"notice_body\">|<div|</div>|<a\\s+href=\"(.*?>?)</a>");        Matcher m = p.matcher(str);        Boolean flag = false;        int count = 0;        while(m.find()){            if(m.group().equals("<div class=\"notice_body\">")){                flag = true;                count++;            }            else if(m.group().equals("<div")){                if(flag==true) count++;            }                        else if(m.group().equals("</div>")){                if(flag==true&&count!=0){                    count--;                }                if(count==0){                    flag = false;                }            }            else{                if(flag==true){                    System.out.println(m.group());                }            }        }    }