写这个博客主要是稍微系统的学一下Java的正则表达式吧。还有因为,之前遇到一个问题,没有办法解决,我来了一招反向匹配,骚的我自己都受不了。然而,身为一个代码猴,我不应该这样不求甚解。Java中不可能没有,我要的方法。(如果没有,我立马转学Cshit去。)
扯淡结束,先描述一下我最开始遇到的问题吧。
从前有一个前端小姐姐向后端传送了一个时间的数据类型,然而她传给我的是如下格式:2017年08月18日15时41分
当时我见到这种格式我就懵逼了,百度了许久也没有找到解决方法。我无法将这个String转成Date。
于是我就想到用正则表达式来获得String里面的数字。(2017, 08, 18, 15, 41)
然后new 一个Date数据类型,然后存到数据库中。
我的这个想法是好的,然而显示确实很残酷。
但是,我找到了Pattern类里面有一个split的方法,这个方法是一个拆分器。
比如说:我正则写的是匹配数字,但是拆分器会把数字刨除。生成的是["年", "月", "日", "时", "分"]
我要的数字就没了,所以我想到了反向匹配的套路,匹配非数字的字符(串)。
说了一大堆,不上代码怎么行,先来一个反向匹配的代码
1Pattern pattern = Pattern.compile("[^0-9]+");2 String[] strings = pattern.split("2017年08月18日15时41分");3 System.out.println(Arrays.toString(strings));
运行结果如图: