要求格式如:1001(-01-01-01-01.......N)如:1001,1001-01,1001-10-10等
括号部分是可选内容,可有可无
前4位首尾不能为0其他都可以如“1111”,‘3002’,‘2093’
后面可以不限连接‘xx’两位数,不允许为‘00’
求大牛解答急!!!!!!!!!!
最好是java的
正则表达式

解决方案 »

  1.   

    public class Hello {
        public static void main(String[] args) throws Exception {
            String pattern = "[1-9]\\d{3}(-[1-9]\\d|-\\d[1-9])*";        System.out.println("1001".matches(pattern));
            System.out.println("1001-10".matches(pattern));
            System.out.println("1001-01".matches(pattern));
            System.out.println("1001-00".matches(pattern));
            System.out.println("1001-10-10".matches(pattern));
            System.out.println("1001-10-01".matches(pattern));
            System.out.println("1001-01-10".matches(pattern));
            System.out.println("1001-01-01".matches(pattern));
            System.out.println("0001-01-01".matches(pattern));
        }
    }
    输出
    true
    true
    true
    false
    true
    true
    true
    true
    false
      

  2.   


    // 用这个新的。
    // 前4位首尾不能为0:忘了这里
    String pattern = "[1-9]\\d{2}[1-9](-[1-9]\\d|-\\d[1-9])*";
      

  3.   

    楼上正解,推荐楼主使用  RegexBuddy