字符串同时有三种格式,如下,需要获取字符串中的时间,即2015-05-01 21:35,16小时,15分钟
"文章由xxx 于2015-05-01 21:35分享"
"文章由xxx 于16小时前分享"
"文章由xxx 于15分钟前分享"
注:xxx为用户名
用什么方式可以比较高效地截取时间信息?我知道正则君强大,能提供详细思路就更好了
String str="文章由xxx 于2015-05-01 21:35分享";
方法一:(简单粗暴)
int start=str.lastIndexOf("于");
int end=str.lastIndexOf("分享");
String result=str.substring(start+1,end);
方法二:(正则)
全选复制放进笔记
String regEx="(\d{4}-\d{2}-\d{2} \d{2}:\d{2})|(\d{1,2}小时)|(\d{1,2}分钟)";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
if(m.find()){
String result=m.group();
}
注:常规法,不能处理掉“前”字;Java的正则表达式单斜杠变为双斜杠,否则会报错Invalid escape sequence
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。