是否为金额所对应的内容补匹配你给的正则
原因这段内容里有这一行“var regu = "^[0-9]+[\.][0-9]{0,3}$";”中包含[]

解决方案 »

  1.   

    嗯,我是要将jstl_core.info文件中内容以 <[ 开始, 以 ]> 结束来分段截取,,(而且截取出来的内容需要和原文一致的缩进和回车)
    你上面那个不对吧?
      

  2.   

    这样匹配:Pattern p = Pattern.compile("(\\<\\[.*\\]>)",Pattern.DOTALL); 
    Matcher m = p.matcher(sb.toString());
    while (m.find()) {
    System.out.println(m.group(1));
    }
      

  3.   

    是否为邮政编码:^\d{6}$
    是否为金额:^(?!<=[\.0])[1-9]+?[0-9]*\.\d{1,3}(?!=\.)$|^(?!<=[\.0])0\.\d{1,3}(?!=[\.|\d])$
      

  4.   

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;public class Test { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new FileReader(
    "in.txt")); BufferedWriter bw = new BufferedWriter(new FileWriter("out.txt"));  String temp = "";
    StringBuffer sb = new StringBuffer(); while ((temp = br.readLine()) != null) {
    //System.out.println("每一个:" + temp);
    sb.append(temp + System.getProperty("line.separator"));
    } //System.out.println("全部读书来的效果:" + sb.toString()); //Pattern p = Pattern.compile("<\\[.*?\\]>");
    //Pattern p = Pattern.compile("<\\[\\s*([^\\]\\>]*)\\s*\\]\\>");
    //Pattern p = Pattern.compile("<\\[.[\\d\\D]*\\]>");
    //Pattern p = Pattern.compile("\\<\\[([^\\[\\]]*)\\]\\>"); //ok
    //
    //这里写了两个,第一个不会去掉<[ 和]>两个符号,第二个会去掉
    // Pattern p = Pattern.compile("\\<\\[.*?\\]\\>",Pattern.DOTALL); //ok
    Pattern p = Pattern.compile("(?<=\\<\\[).*?(?=\\]\\>)",Pattern.DOTALL); //ok Matcher m = p.matcher(sb.toString());
    while (m.find()) {
    System.out.println("---> " + m.group());
    bw.write(m.group().toString()); 
    bw.newLine();
    } bw.flush(); 
    br.close(); 
    bw.close(); 
    }
    }
      

  5.   

    我在你这个System.out.println前加上 "--->" 发现只有一个返回,不是分组返回啊,,你试试啦