一个字符串不等于 ‘001’,‘002’,‘003’,‘004’,‘005’中的一个任意一个请用正则表达式直接写,而不要写成等于其中的某一个的正则表达式而后再在JAVA中取非,谢谢~

解决方案 »

  1.   

    java.util.regex.Pattern p=java.util.regex.Pattern.compile("00[^1-5]");
    System.out.println(p.matcher("001").matches());
    System.out.println(p.matcher("002").matches());
    System.out.println(p.matcher("003").matches());
    System.out.println(p.matcher("004").matches());
    System.out.println(p.matcher("005").matches());
    System.out.println(p.matcher("006").matches());
    System.out.println(p.matcher("007").matches());
    System.out.println(p.matcher("008").matches());
      

  2.   

    public boolean checkString(String args){
    Pattern p=Pattern.compile("^[0]{2}[1-5]{1}$");
    Matcher m=p.matcher(args);
    if(m.matches())//尝试将整个区域与模式匹配
    return false;
    else
    return true;
    }
      

  3.   

    匹配Pattern.compile("00[^1-5]");再!
      

  4.   

    不好意思我没说清楚,应该是 一个字符串不等于某些字符串如同 (aaa|bbb|ccc)表示一个字符串是否等于 aaa 或 bbb 或 ccc
    那么一个字符串不等于 aaa 也不等于 bbb 也不等于 ccc 应该怎么写呢?
      

  5.   

    我的那个不就可以吗?
    如果字符串是001或002或003。。
    就会返回false 难道不是你想要的吗if("aaa".equals(args)||"bbb".equals(args)||"ccc".equals(args)){
       System.out.println("这不是我想要的");
    else
       System.out.println("这是我想要的");
      

  6.   

    zhaochunhui(没有烟抽的日子) ( ) 信誉:100    Blog   加为好友  2007-04-05 16:51:45  得分: 0  
     
     
       我的那个不就可以吗?
    如果字符串是001或002或003。。
    就会返回false 难道不是你想要的吗if("aaa".equals(args)||"bbb".equals(args)||"ccc".equals(args)){
       System.out.println("这不是我想要的");
    else
       System.out.println("这是我想要的");
      
     
    哈哈,这位大哥投机,lz说了“请用正则表达式直接写,而不要写成等于其中的某一个的正则表达式而后再在JAVA中取非,谢谢~”,你这是变相取非~~
      

  7.   

    to daniel_kaka() 我在上面已经给出了正则表述的形式了
      

  8.   

    我看到了,你那表达式是排除法,不就是相当于取非吗~~~
    lz的意思应该是直接满足的表达式,而不是不满足的表达式
    就是if(满足){返回true},你的恰好是if(不满足){返回真}
      

  9.   

    String regex = ".{1,2}|.{4}|0[^0].|[^0].{2}|00[^1-5]";
    试试这个
      

  10.   

    public boolean check(String s){
     Pattern p=Pattern.compile("^[0]{2}[1-5]{1}$");
     Matcher m=p.matcher(s);
     if(m.matches()) return false;
     else return true;
    }
    这样就可以了
      

  11.   

    对LS彻底无语
    比LZ还狠~
    ...[^(001)(002)(003)(004)(005)]
    =[^0012345()]
    =[^0012345\(\)]
      

  12.   

    对LS彻底无语
    比lz还狠~
    [^(001)(002)(003)(004)(005)]
    =[^0012345()]
    =[^0012345\(\)]
      

  13.   

    先匹配是否等于下边的,
    ^(00[12345]){1}$
    等的话取反就行.我和zhaochunhui(没有烟抽的日子) 同一个方法.
      

  14.   

    对java的语法不熟悉,用js测试,你保存成html就可以看了<script language="javascript">
    var str = "007";
    var reg = new RegExp("(?!001|002|003|004|005)^(.*)$");
    var arr = str.match(reg);
    if (arr)
    {
        alert(arr[0]);
    }
    else
    {
        alert("Pattern Not Matched");
    }
    </script>
      

  15.   

    ls的验证一下var str = "0041";
      

  16.   

    to daniel_kaka
    楼主只是要判断不等于,而不是判断不包含
    ------------------------------------------------------------------
     yz_ivan(傻瓜书) ( ) 信誉:96    Blog   加为好友  2007-4-5 13:26:44  得分: 0  不好意思我没说清楚,应该是 一个字符串不等于某些字符串如同 (aaa|bbb|ccc)表示一个字符串是否等于 aaa 或 bbb 或 ccc
    那么一个字符串不等于 aaa 也不等于 bbb 也不等于 ccc 应该怎么写呢?------------------------------------------------------------------
      

  17.   

    楼主需要的是一个通用的处理这种类型的方法。鉴定完毕~HOHO
      

  18.   

    ?!(aaa|bbb|ccc)
    这个应该没问题了
      

  19.   

    http://www.csdn.net