日期:2014-05-20  浏览次数:20683 次

求java中的正则表达式
(G1102_0690_C10_1+G1102_0690_C32_1+G1102_0690_C37_1+G1102_0690_C60_1+G1102_0690_C63_1+G1102_0690_C66_1+G1102_0690_C69_1)/(G1102_0690_F70_1*0.02+G1102_0690_H70_1*0.25+G1102_0690_I70_1*0.5+G1102_0690_J70_1)&(G1102_0690_C10_2+G1102_0690_C32_2+G1102_0690_C37_2+G1102_0690_C60_2+G1102_0690_C63_2+G1102_0690_C66_2+G1102_0690_C69_2)/(G1102_0690_F70_2*0.02+G1102_0690_H70_2*0.25+G1102_0690_I70_2*0.5+G1102_0690_J70_2)&(G1102_0690_C10_3+G1102_0690_C32_3+G1102_0690_C37_3+G1102_0690_C60_3+G1102_0690_C63_3+G1102_0690_C66_3+G1102_0690_C69_3)/(G1102_0690_F70_3*0.02+G1102_0690_H70_3*0.25+G1102_0690_I70_3*0.5+G1102_0690_J70_3)

以上是字符串,我要验证的是:
除了0-9 a-z A-Z () [] {} + - * / (其他都不允许存在)
&在整个字符串中必须出现两次.


--------------------------------
以下内容为自动编辑的内容,并非楼主的发贴内容,此仅用于显示而已,并无任何其他特殊作用
楼主【dingli123】截止到2008-08-05 16:08:49的历史汇总数据(不包括此帖):
发帖的总数量:1 发帖的总分数:100 每贴平均分数:100  
回帖的总数量:2 得分贴总数量:1 回帖的得分率:50%  
结贴的总数量:1 结贴的总分数:100  
无满意结贴数:0 无满意结贴分:0  
未结的帖子数:0 未结的总分数:0  
结贴的百分比:100.00% 结分的百分比:100.00%  
无满意结贴率:0.00 % 无满意结分率:0.00 %  
敬礼!
取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=dingli123

------解决方案--------------------
((\([\w\+\-\*\/\.]+\))/(\([\w\+\-\*\/\.]+\))&){2}(\([\w\+\-\*\/\.]+\))/(\([\w\+\-\*\/\.]+\))


java中\换成\\
------解决方案--------------------
第一个有点问题,
Java code

    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;
    }