首页 > 解决方案 > 通过 Java 解析输出

问题描述

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

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

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

标签: javaparsingcommand

解决方案


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

例如,使用...

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

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


推荐阅读