这样一个时间字符串:2008-08-08 20:08:08 , 请编写能够匹配它的正则表达式,并编写JAVA代码将日期后面的时分秒提取出来,即:20:08:08

解决方案 »

  1.   

    这个使用正则表达式比较麻烦吧,估计你是用来作时间验证的。还要考虑不同的月份对应的天数不同,不如直接使用DateFormat进行格式化比较好。例如:
    (new SimpleDateFormat("yyyy-MM-dd")).parse("yyyy-MM-dd HH:mm:ss");
    如果成功就说明格式正确,失败就说明格式错误。
    至于获取后半部分的内容,则更简单了,
    String[] aa = "2008-08-08 20:08:08".split(" ");
    if(aa != null && aa.length > 1){
    System.out.println(aa[1]);
    }
    这只是一个投机取巧的方法,如果对系统性能要求比较高的话,则可以使用其它方式。
      

  2.   

    不好意思,刚才复制粘贴覆盖错了。
    这个使用正则表达式比较麻烦吧,估计你是用来作时间验证的。还要考虑不同的月份对应的天数不同,不如直接使用DateFormat进行格式化比较好。例如: 
    (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).parse("2008-08-08 20:08:08"); 
    如果成功就说明格式正确,失败就说明格式错误。 
    至于获取后半部分的内容,则更简单了, 
    String[] aa = "2008-08-08 20:08:08".split(" "); 
    if(aa != null && aa.length > 1){ 
    System.out.println(aa[1]); 

    这只是一个投机取巧的方法,如果对系统性能要求比较高的话,则可以使用其它方式。
      

  3.   

    (?:[0-9]{1,4}(?<!^0?0?0?0))-(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8]|(?:(?<=(?:0[13578]|1[02])-)(?:29|3[01]))|(?:(?<=(?:0[469]|11)-)
    (?:29|30))|(?:(?<=(?:(?:[0-9]{0,2}(?!0?0)(?:[02468]?(?<![13579])[048]|[13579][26]))|(?:(?:[02468]?[048]|[13579][26])00))-02-)(?:29)))原来写着玩的,用于日期验证的,还没加上时间,这个表达式已经非常复杂了,效率也很低。
    也就是说如果在实际中应用这种表达式的话,就该打 PP!