正则表达式手记

来源:互联网 发布:怎么学java编程基础 编辑:程序博客网 时间:2024/06/14 19:44
一、 

java正则表达式匹配所有数字+匹配纯数字+匹配带小数点数字

    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;        }


原创粉丝点击