0

我试图解析日志文件并且很难尝试忽略令牌中的字符串。

我试图解析的部分日志:

[Wed Mar 06 20:56:27.121877 2019]

我想为日期创建一个令牌,在该日期应该忽略第二年之后的任何值,如下所示:

Mar 06 20:56:27 2019

我的正则表达式字符串现在看起来像这样:

\[\S+ (\S+ \d+ \d+:\d+:\d+)
4

3 回答 3

0

你可以这样做:

public class MyClass {
  public static void main(String args[]) {
    String test = "[Wed Mar 06 20:56:27.121877 2019]";
    String[] arr = test.split(" ");
    System.out.println(arr[1]+" "+arr[2]+" "+arr[3].substring(0,8)+" "+arr[4].substring(0,4));
  }
}

输出:

2019 年 3 月 6 日 20:56:27

于 2019-06-21T08:12:53.163 回答
0

你可以尝试这样的事情:

public class Main {
  public static void main(String args[]) {
    String test = "[Wed Mar 06 20:56:27.121877 2019]";
    System.out.println(test.replaceAll("\\.[0-9]+|\\[|\\]", "").substring(test.indexOf(' ')));
  }
}

输出:

2019 年 3 月 6 日 20:56:27

于 2019-06-21T08:27:18.197 回答
0

从月份开始正则表达式,忽略日。它看起来类似于下面的代码片段:

String dateform = "[Wed Mar 06 20:56:27.121877 2019]";
    String regex ="(\\S+ \\d+ \\d+:\\d+:\\d+)";
    Pattern p = Pattern.compile(regex);
    Matcher m = p.matcher(dateform);
    if(m.find()){
       System.out.println(m.group(0));

    }

输出:

3月6日 20:56:27

于 2019-06-21T08:30:15.107 回答