得一高手指点
我想把<img alt="tyui" border="0" src="http://www.sina.com.cn">
换成<img alt="tyui" border="0" src="site/img">
用js就可以
<script type="text/javascript">
  var s="<img alt=\"tyui\" border=\"0\" src=\"http://www.sina.com.cn\">";
  var regS=/(src=)\"(.*?)\"/;
  s.match(regS);
  alert(s.replace(RegExp.$2,"site/img"));
  
</script>
可是我放到java里
import java.util.regex.*;class b{       public static void main(String args[]) {              String regEx="/(src=)\"(.*?)\"/";              String str="<img alt=\"tyui\" border=\"0\" src=\"http://www.sina.com.cn\">";              Pattern p=Pattern.compile(regEx);              Matcher m=p.matcher(str);              String s=m.replaceAll("site/img"); // ("") 删除              System.out.println(s);       }}   
输出的结果还是     
<img alt="tyui" border="0" src="http://www.sina.com.cn">
哪里不对了?盼高手指点阿

解决方案 »

  1.   

    public static void main(String[] args) {
    String regEx="(?<=(src=))\"(.*)\""; String str="<img alt=\"tyui\" border=\"0\" src=\"http://www.sina.com.cn\">"; Pattern p=Pattern.compile(regEx);
    Matcher m=p.matcher(str);
    String s=m.replaceAll("\"site/img\""); // ("") 删除
    System.out.println(s);
    }
      

  2.   

    明显是因为你的
    String regEx="/(src=)\"(.*?)\"/";
    写错了,检查一下吧
      

  3.   

    在js里,我使用反向引用来做,在java,使用反向搜索罢了,效果一样
      

  4.   

    那为什么反向引用在java里就不行了呢
      

  5.   

    也可以的,不过应该这样写: public static void main(String[] args) {
    String regEx="src=\"(.*)\""; String str="<img alt=\"tyui\" border=\"0\" src=\"http://www.sina.com.cn\">"; Pattern p=Pattern.compile(regEx);
    Matcher m=p.matcher(str);
    m.find();
    String s=str.replaceAll(m.group(1), "site/img");
    System.out.println(s);
    }