import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?:ALARM[\\s]*)(?:\\d*)[A-Za-z\\s\\d\\.=]*(?:Alarm\\sraised\\stime)\\s+=\\s+([\\d\\-]+\\s[\\d\\:]+)\\s+(?:Location\\sinfo)\\s+=\\s+Local\\sCell\\sID=([\\d]+)(?:,\\s[a-zA-Z]+\\s[A-Z]+\\s[A-Z]+\\s[a-zA-Z\\=,]+\\s[a-zA-Z\\=-]+\\s[a-zA-Z\\=-]+\\s[a-zA-Z\\=-_,]+)[\\s\\,A-Za-z0-9=\\_]*(?:eNodeB\\sID=)([0-9]+)(?:,.+\\s\\s+.+\\s+)(?:Cleared\\stype)\\s+=\\s+([a-zA-Z ]+)(?:[\\sA-Za-z\\s=]*)([\\d-]*\\s[\\d:]+)";
final String string = "L_SAMBIL\n"
+ "+++ L_SAMBIL 2020-09-21 11:53:53\n"
+ "O&M #1502\n"
+ "%%/*1882154167*/LST ALMLOG:ALMTP=all,CLRFLG=cleared-1&uncleared-1,CLRSD=2020&09&21,CLRED=2020&09&22,STARTAID=29240,ENDAID=29240;%%\n"
+ "RETCODE = 0 Operation succeeded\n\n"
+ "ALARM 72712 Fault Major eNodeB 29240 Signaling \n"
+ " Sync serial No. = 162656\n"
+ " Alarm name = Cell Unavailable\n"
+ " Alarm raised time = 2020-09-21 06:36:19\n"
+ " Location info = Local Cell ID=2, Cell FDD TDD indication=FDD, NB-IoT Cell Flag=FALSE, Cell Name=L_SAMBIL2, eNodeB ID=15080, Cell ID=2, Specific Problem=External link fault\n"
+ " Function = eNodeB Function Name=L_SAMBIL, objId=0\n"
+ " Cleared type = Normally cleared\n"
+ " Cleared time = 2020-09-21 06:39:42\n"
+ " Special info = RAT_INFO=L, AFFECTED_RAT=L, DID=NULL\n"
+ " Special info1 = AF_L=L_SAMBIL\n\n"
+ "ALARM 72713 Fault Major eNodeB 29240 Signaling \n"
+ " Sync serial No. = 162655\n"
+ " Alarm name = Cell Unavailable\n"
+ " Alarm raised time = 2020-09-21 06:36:19\n"
+ " Location info = Local Cell ID=3, Cell FDD TDD indication=FDD, NB-IoT Cell Flag=FALSE, Cell Name=L_SAMBIL3, eNodeB ID=15080, Cell ID=3, Specific Problem=External link fault\n"
+ " Function = eNodeB Function Name=L_SAMBIL, objId=0\n"
+ " Cleared type = Normally cleared\n"
+ " Cleared time = 2020-09-21 06:39:41\n"
+ " Special info = RAT_INFO=L, AFFECTED_RAT=L, DID=NULL\n"
+ " Special info1 = AF_L=L_SAMBIL\n\n"
+ "ALARM 72711 Fault Major eNodeB 29240 Signaling \n"
+ " Sync serial No. = 162654\n"
+ " Alarm name = Cell Unavailable\n"
+ " Alarm raised time = 2020-09-21 06:36:19\n"
+ " Location info = Local Cell ID=1, Cell FDD TDD indication=FDD, NB-IoT Cell Flag=FALSE, Cell Name=L_SAMBIL1, eNodeB ID=15080, Cell ID=1, Specific Problem=External link fault\n"
+ " Function = eNodeB Function Name=L_SAMBIL, objId=0\n"
+ " Cleared type = Normally cleared\n"
+ " Cleared time = 2020-09-21 06:39:41\n"
+ " Special info = RAT_INFO=L, AFFECTED_RAT=L, DID=NULL\n"
+ " Special info1 = AF_L=L_SAMBIL\n"
+ "(Number of results = 3)\n\n"
+ "--- END";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html