正则表达式手记

    1)规则描述:
         [1-9] :匹配1~9的数字;
   \d :匹配数字,包括0~9
   * :紧跟在 \d 之后,表明可以匹配零个及多个数字;
   \. :匹配小数点
   ? :紧跟在 \. 之后,表明可以匹配零个或一个小数点;
   0 :匹配一个数字0
   

其中的 [1-9]\d*\.?\d* 用以匹配诸如:1、23、34.0、6.7 之类的非负的整数和浮点数

其中的 0\.\d*[1-9] 用以匹配诸如:0.1、0.23、0.405 之类的非负浮点数

知道规则后我们可以根据需求自由搭配。

二、  

java正则表达式匹配日期格式


示例如下:
 public static String getLogTime(String time) {
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//1
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");//2
        SimpleDateFormat sdf3 = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z", Locale.US);// 3

        String format1 = "((19|20)[0-9]{2})-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01]) "
                + "([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]";

        String format2 = "((19|20)[0-9]{2})-(0?[1-9]|1[012])-(0?[1-9]|[12][0-9]|3[01])T"
                + "([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]";

        Pattern p1 = Pattern.compile(format1);
        Matcher m1 = p1.matcher(time);

        Pattern p2 = Pattern.compile(format2);
        Matcher m2 = p2.matcher(time);
        try {
            if (m1.find()) {
                Date date = sdf1.parse(time);
                return sdf1.format(date);
            }
            if (m2.find()) {
                Date date = sdf2.parse(time);
                return date.toLocaleString();
            } else {//dd/MMM/yyyy:HH:mm:ss
                Date date = sdf3.parse(time);
                return sdf1.format(date);
            }
        } catch (ParseException e) {
            e.printStackTrace();
            return null;
        }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值