解决方案 »

  1.   

    ((\d+;){1}(\d*;){2}\d*\s+)*$,把^去掉就行了。
      

  2.   

    var str1="18888;1;2;188664 651645;6546;;";
    var str2="18888;1;2;188664651645;6546;;";
    var reg=/((\d+;){1}(\d*;){2}\d*\s+)*$/g;
    alert(reg.test(str1)+"||"+reg.test(str2));
      

  3.   

    不修改你的正则表达式的前提下可以这样判断        String s1 = "18888;1;2;188664 651645;6546;;";
            String s2 = "18888;1;2;188664651645;6546;;";
            String r = "^((\\d+;){1}(\\d*;){2}\\d*\\s+)*$";
            System.out.println((s1 + " ").matches(r));
            System.out.println((s2 + " ").matches(r));
      

  4.   

    我用的eclipse 中的正则测试工具,发再后面那个就不行,第一个可以,但是如果没有中间空格也可以,就是想中间必须有空格才行。