求一正则表达式的java程序方法.
public void apendCount(String url, String appendStr);
只要html内的a标签的href的值匹配url,则在标签里追加appendStr.如:
<a href="http://www.baidu.com" target="_blank">百度</a>
当调用方法appendCount("http://www.baidu.com","X")时,
html内的<a href="http://www.baidu.com" target="_blank">百度</a>
被更改为<a href="http://www.baidu.com" target="_blank">X百度</a>
感激不尽~~~

解决方案 »

  1.   

    可以这样
    String s = "<a href=\"http://www.baidu.com\" target=\"_blank\">百度 </a>"; 
    System.out.println(url.replaceAll("(<.*>)(.*)(</.*>)", "$1" + appendStr + "$2$3"));
      

  2.   

    String url = "<a href=\"http://www.baidu.com\" target=\"_blank\">百度 </a>"; 
    System.out.println(url.replaceAll("(<.*>)(.*)(</.*>)", "$1" + appendStr + "$2$3"));
      

  3.   

    呵呵,不对,应该改成 System.out.println(url.replaceAll("(<.*?>)(.*?)(</.*?>)", "$1" + appendStr + "$2$3"));好点,应该用懒惰匹配
      

  4.   

    谢谢大恩人.
    我开始是这样做的:
    public class TestPage
    {
        public static String tContent(String content, String url, String appendStr)
        {
            String regex = "(?x)(?i)((<a\\s)([^<>]*)href\\s*=\\s*('|\")" + url + "('|\")([^<>]*)[>])";
            return content.replaceAll(regex, "$1" + appendStr);
    //        Pattern pattern = Pattern.compile(regrex);
    //        Matcher matcher = pattern.matcher(content);
    //        
    //        String part = "";
    //        if (matcher.find())
    //        {
    //            part = matcher.group(0);
    //            return content.replaceAll(regrex, part + appendStr);
    //        }
    //        return content;
        }
        
        public static void main(String[] args)
        {
            String content = "<div><a href='http://www.baidu.com'>百度</a><div>";
            String url = "http://www.baidu.com";
            System.out.println(TestPage.tContent(content, url, "这里通向"));
        }