本帖最后由 java2000_net 于 2008-08-05 16:08:59 编辑

解决方案 »

  1.   


    public static boolean do10() {
    String str = "(G1102_0690_F70_1*0.02+G1102&_0690_H70_1*0.25-G1102_0690_I70_1*0.5+G1102_0690_J70_1)&(";
    Pattern pattern = Pattern.compile("([^0-9a-zA-Z\\+\\-\\*\\/\\(\\)\\[\\]\\{\\}])",Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
    Matcher m = pattern.matcher(str);
    while (m.find()) {
    return true;
    }
    Pattern pattern2 = Pattern.compile("(&)",Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
    Matcher m2 = pattern2.matcher(str);
    int getit=-1;
    while(m2.find()){
    getit++;
    }
    if(getit!=2)
    return true;
    return false;
    }
      

  2.   

    ((\([\w\+\-\*\/\.]+\))/(\([\w\+\-\*\/\.]+\))&){2}(\([\w\+\-\*\/\.]+\))/(\([\w\+\-\*\/\.]+\))
    java中\换成\\
      

  3.   

    第一个有点问题, public static boolean do10() {
    String str = "123+-*/()[]{}abAb&&";
    Pattern pattern = Pattern.compile("([^0-9a-zA-Z\\+\\-\\*\\/\\(\\)\\[\\]\\{\\}&])",Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
    Matcher m = pattern.matcher(str);
    while (m.find()) {
    System.out.println(m.group(1));
    return true;
    }
    Pattern pattern2 = Pattern.compile("(\\&)",Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
    Matcher m2 = pattern2.matcher(str);
    int getit=0;
    while(m2.find()){
    getit++;
    }
    if(getit!=2){
    System.out.println("getit="+getit);
    return true;
    }
    return false;
    }