如何从log文件里截取时间字符串

看着奢扣 2015-07-13 04:52:00
log文件如下:
2015-07-11 15:16:47 [ pool-2-thread-2:74158 ]-[ INFO ]
aaaaaaa
bbbbbbb
2015-07-12 15:17:47 [ pool-2-thread-2:74158 ]-[ INFO ]
cccccccc
aaccvvsssssssdad



谢谢大牛,正则表达式学的不好。网上找的例子都不是24小时制的,需要截取加粗的时间串
...全文
292 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
疯狂熊猫人 2015-07-14
  • 打赏
  • 举报
回复
我也来一个:直接取出匹配 [ pool-2-thread-2:74158 ]-[前面的部分再去除两端的空格就是时间2015-07-11 15:16:47

Pattern p = Pattern.compile("([\\d-: ]+)\\[.+?\\]-\\[");
String log = "2015-07-11 15:16:47  [ pool-2-thread-2:74158 ]-[ INFO ]";
Matcher m = p.matcher(log);
while(m.find()){
	System.out.println(m.group(1).trim());
}
JPF1024 2015-07-14
  • 打赏
  • 举报
回复
http://www.runoob.com/regexp/regexp-tutorial.html 参考》 另外一个工具: http://tool.oschina.net/regex 加油
看着奢扣 2015-07-13
  • 打赏
  • 举报
回复
这个不够严谨,但是也能凑合用 谢谢
Inhibitory 2015-07-13
  • 打赏
  • 举报
回复
import java.util.regex.*;

public class Test {
    public static String extractDateTime(String text) {
        Pattern pattern = Pattern.compile("\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}");
        Matcher matcher = pattern.matcher(text);

        if (matcher.find()) {
            return matcher.group(0);
        }

        return null;
    }

    public static void main(String[] args) {
        System.out.println(extractDateTime("2015-07-11 15:16:47  [ pool-2-thread-2:74158 ]-[ INFO ] "));
        System.out.println(extractDateTime("bbbbbbb"));
    }
}
输出
2015-07-11 15:16:47
null
  • 打赏
  • 举报
回复
^(\d{4})([-])(\d{2})([-])(\d{2})(\s)(\d{2})([:])(\d{2})([:])(\d{2}) 不确定对不对。。。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧