【问题标题】:Parsing an output by Java通过 Java 解析输出
【发布时间】:2018-06-01 04:27:13
【问题描述】:

我如何解析这样的输出:(如下所示)

我只需要“POLICY ENM_USERDEFINED_wtc2e3lms-bu”和“EXIT STATUS”的值。 也有类似的输出,但在不同的位置。 所以不能使用子字符串或拆分。 解析必须由Java完成。

这是命令的输出,因此需要类似的“POLICY”名称和“EXIT STATUS”的值

【问题讨论】:

  • POLICY ENM[a-zA-Z_0-9-]+ 这样的正则表达式会将policy ENM 字符串带到下一个空格
  • EXIT STATUS [0-9]+ 将为您提供退出状态

标签: java parsing command


【解决方案1】:

您可以使用几个正则表达式来查找并返回您之后的文本。

例如,使用...

public String find(String pattern, String in) {
    Pattern p = Pattern.compile(pattern);
    Matcher matcher = p.matcher(in);
    if (matcher.find()) {
        return matcher.group();
    }
    return null;
}

还有……

String value = "some preable POLICY ENM_USERDEFINED_wtc2e3lms-bu some postable EXIT STATUS 100 some other stuff thrown in the mix";
System.out.println(find("POLICY ENM[a-zA-Z_0-9-]+", value));
System.out.println(find("EXIT STATUS [0-9]+", value));

输出...

POLICY ENM_USERDEFINED_wtc2e3lms-bu
EXIT STATUS 100

从那里,我会使用另一个正则表达式来提取实际的状态值......但我相信你可以弄清楚那部分;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    • 2012-04-21
    相关资源
    最近更新 更多