import re
regex = re.compile(r"(?: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:]+)", flags=re.MULTILINE)
test_str = ("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")
matches = regex.finditer(test_str)
for match_num, match in enumerate(matches, start=1):
print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}")
for group_num, group in enumerate(match.groups(), start=1):
print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")
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 Python, please visit: https://docs.python.org/3/library/re.html