Java链接正则表达式

Java链接正则表达式,java,regex,matcher,regex-group,Java,Regex,Matcher,Regex Group,我必须解析以下示例输出。要求是在织物管理FPC状态:后不应有文本,即它应为空\s。下一部分有点棘手,我被困在那里。因此,每个FPC都有一个或多个PFE,每个FPE都有一个或多个SIB。每个SIB都有四种可能的状态。它们是平面启用、链接错误、设计错误和平面禁用。我应该使用regex解析这个,并跟踪每个FPC、PFE和SIB的状态。我不知道如何在regex中有一个“链接的”组 Fabric management FPC state:

我必须解析以下示例输出。要求是在
织物管理FPC状态:
后不应有文本,即它应为空
\s
。下一部分有点棘手,我被困在那里。因此,每个
FPC
都有一个或多个
PFE
,每个
FPE
都有一个或多个
SIB
。每个
SIB
都有四种可能的状态。它们是
平面启用、链接错误、设计错误和平面禁用
。我应该使用regex解析这个,并跟踪每个
FPC、PFE和SIB的状态。我不知道如何在regex中有一个
“链接的”

Fabric management FPC state:                                  
FPC #0
  PFE #0
    SIB #0 
            Plane enabled
    SIB #1 
            Link Error        
  PFE #1
    SIB #0 
            Destination Error
    SIB #1 
            Plane Disabled
    SIB #2 
            Plane enabled       
FPC #1
  PFE #1
    SIB #0 
            Plane enabled
到目前为止,我得到的是

public void parseFPCS(String commandOutput) {
        regex = "FPC state:(\\s*)(FPC\\s*#?\\d+)\\s*(PFE\\s*#\\d+)\\s*(SIB\\s*#\\d+)\\s*(\\w*\\s*\\w*)";
        pattern = Pattern.compile(regex, patternFlag);
        matcher = pattern.matcher(commandOutput);

        while(matcher.find()) {
            String empty = matcher.group(1);
            Boolean isEmpty = empty.trim().isEmpty();
            if(isEmpty) {
                System.out.println("Link Empty");
                System.out.println(matcher.group(2));
                System.out.println(matcher.group(3));
                System.out.println(matcher.group(4));
                System.out.println(matcher.group(5));
                //Right now I am just printing it out to see the outcome. 
            }

        }

The current outcome is 
    Link Empty
    FPC #0
    PFE #0
    SIB #0
    Plane enabled //This is expected.

我认为与其使用一个庞大的复杂正则表达式,不如在具有多个正则表达式的条件循环中使用它。

采用这种方法会更容易。