Java связанное регулярное выражение - PullRequest
1 голос
/ 07 октября 2011

Я должен проанализировать следующий пример вывода. Требования заключаются в том, что после Fabric management FPC state: не должно быть текста, т. Е. Оно должно быть пустым \s. Следующая часть немного хитрая, и я застрял там. Таким образом, у каждого FPC есть один или несколько PFE, а у каждого FPE есть один или несколько SIB. Есть четыре возможных состояния для каждого SIB. Они Plane Enabled, Link Error, Desination Error and Plane Disabled. Я должен анализировать это с помощью регулярных выражений и отслеживать состояние для каждого FPC, PFE and SIB. Я не уверен, как иметь 'linked' групп в регулярных выражениях.

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.

1 Ответ

0 голосов
/ 07 октября 2011

Я думаю, что вместо одного огромного сложного регулярного выражения, я предпочитаю делать это в условных циклах с несколькими регулярными выражениями.

...