java找出html里所有的超链接,并将链接改为http://xx.com/aa.jsp?url=原链接,这要怎么搞?

解决方案 »

  1.   


    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    public class Test{
      public static void main(String[] args)
        { 
      Pattern pattern = Pattern.compile("href=\"(.+?)\"");
      Matcher matcher = pattern.matcher("<a href=\"index.html\">测试</a>");
      String string = matcher.replaceAll("href=\"http://xx.com/aa.jsp?url=\"");
      System.out.println(string);
        }}结果:
    <a href="http://xx.com/aa.jsp?url=">测试</a>
      

  2.   

    我这样解决了String str="<a href=\"http://www.163.com\">163.com</a><br><a href=\"http://www.csdn.com\">csdn.com</a>";
    out.print("替换前:<br>"+str+"<hr>");
    String pat="<a.+?href=(\"|'|)\\b(.+?)\\b\\1(?:\\s.*)?>(.+?)</a>";   
    Pattern pattern=Pattern.compile(pat);   
    Matcher m=pattern.matcher(str); 
    StringBuffer sb=new StringBuffer();
    while(m.find()){
     m.appendReplacement(sb,"<a href=http://www.zhuliao.com/jump.jsp?url="+m.group(2)+">"+m.group(3)+"</a>");
     result=m.find();
    }
    m.appendTail(sb);
    out.print("替换后:<br>"+sb.toString());