JAVA中的java.util.regex包有没有办法实现像ASP中的这种replace后向引用的功能呢?
虽然我知道java.util.regex.Pattern支持\1\2这样的后向引用,但不具备replace函数,而ASP就很方便:Dim regEx,Matches
Set regEx=New RegExp'建立一个新对像
regEx.Pattern=patrn'设置模板
regEx.IgnoreCase=true'搜索是否区分大小写的 true表是不区分 flase表示区分
regEx.Global=True'搜索是否应用于整个字符串
Matches=regEx.replace(strng,tagstr)'匹配并替代字符串
请问JAVA怎么写出上述代码最后一行的效果?

解决方案 »

  1.   

    一个例子:
       Pattern p = Pattern.compile("\\d");
        Matcher m=p.matcher("asdas23423asd23423");
        String s = m.replaceAll("0");  //将所有数字替换成0
        System.out.println(s);
      

  2.   

    自己搞定了!Pattern p = Pattern.compile("\\[(\\w+)\\](\\w+)\\[\\/\\1\\]");
    Matcher matcher = p.matcher("[a]bbbb[/a]sfsdccc");System.out.println(matcher.replaceAll("\\<$1\\>$2\\<\\/$1\\>"));结果是:<a>bbb</a>dd<b>ccc</b>
    可以了,呵呵……
      

  3.   

    上例的输出结果是:<a>bbb</a>sfsd<b>ccc</b>
    为了防止误会,更正一下
      

  4.   

    String in = "[a]bbbb[/a]sfsdccc";
    Pattern p = Pattern.compile("\\[(\\w+)\\](\\w+)\\[\\/\\1\\]");
    Matcher matcher = p.matcher(in);
    System.out.println(in);
    System.out.println(matcher.replaceAll("<$1>$2</$1>"));//[a]bbbb[/a]sfsdccc
    //<a>bbb</a>sfsd<b>ccc</b>//应该没有问题了吧?