是some text这些文本换成name1?

解决方案 »

  1.   

    我刚看了一下正则。随便写的。大家不要笑我啊。import java.util.regex.*;
    import java.lang.*;public class Test {    public static String getName(String group) {
            Pattern p1 = Pattern.compile("<!--\\s*Area1Begins\\s*name\\s*=\\s*\"");
            Pattern p2 = Pattern.compile("\"\\s*-->");        Matcher m1 = p1.matcher(group);  
            Matcher m2 = p2.matcher(group);  
            boolean b1 = m1.find();
            int start = m1.end();        
            boolean b2 = m2.find(); 
            int end = m2.start(); 
            return group.substring(start, end); 
            
        }     
        public static void main(String[] args)     {
            StringBuffer sb = new StringBuffer();
            String a = " aaa <!--     Area1Begins    name=\"name1\"    -->\r\nsome text\r\n<!-- Area1Ends       -->";
            Pattern p1 = Pattern.compile("<!--\\s*Area1Begins\\s*name\\s*=\\s*\".*\"\\s*-->");
            Pattern p2 = Pattern.compile("<!--\\s*Area1Ends\\s*-->");
            //Pattern p = Pattern.compile("<>");
            Matcher m1 = p1.matcher(a);
            Matcher m2 = p2.matcher(a);
            System.out.println("Before Change");
            System.out.println(a);
            boolean b1 = m1.find();
            String g1 = m1.group(); 
            String name = getName(g1);
            int lastend = m1.start();
            String lastString = a.substring(0, lastend); 
            int start = m1.end();
            boolean b2 = m2.find();
            String g2 = m2.group(); 
            int end = m2.start();
            System.out.println();
            System.out.println("after Change");
            sb.append(lastString);
            sb.append(g1);                 
            sb.append("\r\n");
            sb.append(name);
            sb.append("\r\n");
            sb.append(g2);   
            System.out.println(sb);     
        }
    }
      

  2.   

    bjzhanghao (八进制) 你问的是这个意思吗?
      

  3.   

    谢谢你scbb,我要的基本就是这个功能。可惜那天急着走没看到,周末我自己写了一下,跟你的作用是一样的,分当然要给你啦:)private String createThemeBlocks(String tmp, Article article) {
        Pattern p = Pattern.compile("(<!--\\s*TemplateBeginEditable\\s+name=\"([^>]+)\"\\s*-->\\s*<!--\\s*TemplateEndEditable\\s*-->)");
        Matcher m = p.matcher(tmp);
        StringBuffer sb = new StringBuffer();
        boolean result = m.find();
        while (result) {
            String columnName = m.group(2);
            m.appendReplacement(sb, article.getContent());
            result = m.find();
        }
        m.appendTail(sb);
        return sb.toString();
    }