想写个正则表达式,可以输入任意字符(6位以上),但不能有空格。
我写了下:
正则表达式:(?!\s).{6,}
测试用例:daw das
不能通过测试,望指教。

解决方案 »

  1.   


    String str1 = "dawds";

    String str2 = "da wds";

    String str3 = "dawdsaa";

    String str4 = "daw dsaa";

    System.out.println(str1.matches("[^\\s]{6,}"));
    System.out.println(str2.matches("[^\\s]{6,}"));
    System.out.println(str3.matches("[^\\s]{6,}"));
    System.out.println(str4.matches("[^\\s]{6,}"));LZ这样试试呢。
      

  2.   

    “32131 12222222222” 我这边显示false,没问题吧。
      

  3.   

    if(你喜欢小s)
      {
          "[^\\s]{6,}"
      }
    if(你喜欢大s)
      {
        "\\S{6,}"
      }
      

  4.   

    (?!\s).{6,} == (?!\s)......省略
    ^(?:(?!\s).){6,}$ == ^(?:(?!\s).)(?:(?!\s).)(?:(?!\s).)(?:(?!\s).)(?:(?!\s).)(?:(?!\s).)省略$明白了么,量词修饰的部分不一样..
      

  5.   


    想写成(.&&[^\\s]){6,}这样,不行
    是不是这种情况不能用交集啊?
      

  6.   

    java.util.regex 包下有三个类,其中有一个是用来测试正则表达式是否正确的,你可以看看api,收获会更大
      

  7.   

    Pattern p = Pattern.compile("[^' ']{6,6}"); 
    Matcher m = p.matcher(input);
      

  8.   

    (.&&[^\\s]){6,}这样,不行 是不是这种情况不能用交集啊?
      

  9.   


    package selfimpr.test;import java.util.regex.Matcher;
    import java.util.regex.Pattern;//测试通过
    public class Test {
    public static void main(String[] args) {
    Pattern p = Pattern.compile("[^ ]{6,}+");
    //由于楼主要的是非空格,而不是非空字符,所以,这里不能使用\\S或^\\s
                    //[^ ]表示不是空格的任意字符.
                    //{6,}+表示6个或以上 -- 参照jdk5documentation
    String s = "dddwasdf";
    Matcher m = p.matcher(s);
    System.err.println(m.find());
    }
    }
      

  10.   

    谢了。
    其实我要说的重点不是非空或非空格的问题。
    在交集里,(.&&[^\\s])这种情况是不是不行。