Я должен проанализировать следующий пример вывода. Требования заключаются в том, что после 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.