<dl class="tbox"> <dt><strong><a href="/article/teshufanyi/">特殊翻译</a></strong><span class="more"><a href="/article/teshufanyi/">更多...</a></span></dt> <dd> <ul class="d1 ico3"> <li><span>04-24</span><a href="/article/teshufanyi/3815/">名片翻译</a></li> <li><span>04-24</span><a href="/article/teshufanyi/3816/">简历翻译</a></li> <li><span>04-24</span><a href="/article/teshufanyi/3817/">公司起名</a></li> <li><span>04-24</span><a href="/article/teshufanyi/3818/">翻译校对</a></li> <li><span>04-24</span><a href="/article/teshufanyi/3819/">中小企业翻译</a></li> <li><span>04-24</span><a href="/article/teshufanyi/3820/">出国翻译</a></li> <li><span>04-24</span><a href="/article/teshufanyi/3821/">包月服务</a></li> <li><span>04-24</span><a href="/article/teshufanyi/3822/">论文翻译</a></li> </ul> </dd> </dl><dl class="tbox"> <dt><strong><a href="/article/hangyefanyi/">行业翻译</a></strong><span class="more"><a href="/article/hangyefanyi/">更多...</a></span></dt> <dd> <ul class="d1 ico3"> <li><span>04-24</span><a href="/article/hangyefanyi/3823/">建筑翻译</a></li> <li><span>04-24</span><a href="/article/hangyefanyi/3824/">外贸翻译</a></li> <li><span>04-24</span><a href="/article/hangyefanyi/3825/">工程技术翻译</a></li> <li><span>04-24</span><a href="/article/hangyefanyi/3826/">农业翻译</a></li> <li><span>04-24</span><a href="/article/hangyefanyi/3827/">生物医学翻译</a></li> <li><span>04-24</span><a href="/article/hangyefanyi/3828/">汽车翻译</a></li> <li><span>04-24</span><a href="/article/hangyefanyi/3829/">新闻演讲稿翻译</a></li> <li><span>04-24</span><a href="/article/hangyefanyi/3830/">网站翻译</a></li> </ul> </dd> </dl>我想把“特殊翻译”下的文章匹配出来放到list对象中例如 {/article/teshufanyi/3815/ 名片翻译} {/article/teshufanyi/3816/ 简历翻译} ...{/article/teshufanyi/3822/ 论文翻译}
对正则不是很懂请大家帮帮忙。。
自己试写了一个。但是不得其解。
 
        List<String,String> newsList = new ArrayList<String,String>();  
        String allHtmlSource = MyRSS.getHtmlSource("上面的html代码");  
        Pattern pattern = Pattern.compile(“(?<=teshufanyi)(.*)(?=hangyefanyi)”);  
        Matcher matcher = pattern.matcher(allHtmlSource);  
        while (matcher.find())  
        {  
            String str1 = matcher.group(1);  
            String str2 = matcher.group(2);  
            System.out.println("group.1="+str1);
            System.out.println("group.2="+str2);
            
        }  
        System.out.println("The End");
请大家帮帮忙谢了。 分可以追加。

解决方案 »

  1.   

    String allHtmlSource = MyRSS.getUrlContent("http://www.kuaiyilin.com/index2.html");
            String regex = "(?<=<dt><strong><a href=\"/html/fanyiwenzhai/\">)(.*)(?=(</dd>){1}) ";  
            Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE );
            Matcher matcher = pattern.matcher(allHtmlSource);  
            String str = "";
            while (matcher.find())  
            {  
                System.out.println("group1()="+matcher.group());
                str = matcher.group();
            }  
            
            regex = "(?<=<li><span>[0-9]{2}-[0-9]{2}</span><a href=\")[^\"]+(?=\">)";
            pattern = Pattern.compile(regex);  
            matcher = pattern.matcher(str);
            Pattern pattern1 = null;
            Matcher matcher1 = null;
            String url = null;
            while (matcher.find())  
            {  
                System.out.print("group2()="+matcher.group());
                url = matcher.group();
                regex = "(?<="+url+"\">)[^<]+(?=</a>)";
                pattern1 = Pattern.compile(regex);  
                matcher1 = pattern1.matcher(str);
                while(matcher1.find()){
                 System.out.println("======="+matcher1.group());
                }
            }