读文件的一行数据,将其中所有<=&myVar&>替换成"+myVar+"
例如:
String query_<&=programvariable1&>=Show.getString((String) request.getAttribute("query_<&=programvariable2&>"));最后要替换成:
String query_"+programvariable1+"=Show.getString((String) request.getAttribute("query_"+programvariable2+""));一行中可能有多个<=&myVar&>
并且<=&和&>按照相临配对,不成对的不替换.

解决方案 »

  1.   

    昨天有位兄弟给的方法,一个还好使,如果有多个<=&myVar&>,它就挑最两头的替换了.
    所以这次要个好使的!
      

  2.   

    不知道这个算不算:String aa = "query_<&=programvariable1&>=Show.getString((String) request.getAttribute(\"query_<&=programvariable2&>\"))";
    System.out.println(aa.replaceAll("<&=", "\"+").replaceAll("&>", "+\""));
      

  3.   

    我希望配对的替换,不配对的不替换
    比如:
    asdgfad<&=fdgf&>lasdf&>
    转换成
    asdgfad"+fdgf+"lasdf&>
      

  4.   

    楼主查一下正则表达式
    Pattern pattern = Pattern.compile("<=.+&>");
    String query = XXXXXX;
    Matcher matcher = pattern.matcher(query)
    while(matcher.find()){
       //替换
    }
      

  5.   

    上面的表达式应该是<=&.+&>
    Pattern pattern = Pattern.compile("<=&.+&>")
      

  6.   

    谁能介绍点正则表达式的资料?
    知识C#学过一点.
    java的不太晓得怎么回事
      

  7.   

    to Rick_ang(东方未名) :
    你的方法还是替换的最两边的,比如:
    String query_<&=programvariable1&>=Show.getString((String) request.getAttribute("query_<&=programvariable2&>"));
    替换为:String query_"));即,
    <&=programvariable1&>=Show.getString((String) request.getAttribute("query_<&=programvariable2&>被看成了一个大的<&=.+&>替换掉了.
      

  8.   

    哦,应该是<=&.+?&>这样就可以了
      

  9.   

    <script>
      var str="String query_<&=programvariable1&>=Show.getString((String) request.getAttribute(\"query_<&=programvariable2&>\"));";
      alert(str.replace(/<&=(.+?)&>/g,"\"+$1+\""));
    </script>
      

  10.   

    哈哈哈哈,我又来噌你的分啦!昨天就是我啦!
    有两种办法
    1、如果你的编辑器或者说如果是你在程序中用,要是能够设置贪婪模式的话,昨天那个就能用了,javascript下的示例:/<%=(.+)%>/g  不过这个没测试过哈,懒!!!
    2、"aaaaaaa<%=myVar%>aaa<%=myVar%>aaaaaa".replaceAll("<%=((.(?!<%=))+)%>","\"+$1+\"")