import re
regex = re.compile(r"TST(?'TQTId'\d{5})|[ \d]{2}\d\.FV.*(?'IssuingAirline'\w\w)|FARE (?'FarePricingIndicator'.) (?'FareCurrency'...)(?'Fare'.{11})|GRAND TOTAL (?'GTCurrency'...)(?'GrandTotal'.{11})|(?'Seg'[ \d]\d . (?'Origin'\w\w\w) (?'Carrier'..) (?'FlightNo'....) (?'Class'.).(?'DepDate'\d\d\w\w\w).(?'DepTime'\d\d\d\d) (?'Status'...) (?'FareBasis'.{8}) (.{18})(?'BgAllowance'...))|^ (?'Destination'\w\w\w).*$|^.*$", flags=re.MULTILINE)
test_str = ("TST00002 ATHG42100 CN/02MAY I 0 LD 24SEP23 2359 OD MNLBRE \n"
"T- \n"
"FXP \n"
" 1.ABAYARE/ROMEO DACER MR(ID7833) \n"
" 2.SEBASTIAN/JAY AR SIMON MR(ID47129) \n"
" 1 MNL TK 085 Y 24SEP 2125 OK YFOW 30K \n"
" 2 X IST TK 1331 Y 25SEP 0720 OK YFOW 30K \n"
" BRE \n"
"FARE F USD 2000.00 \n"
"EQUIV EUR 1810.00 \n"
"TX001 X EUR 193.60-YRVA TX002 X EUR 8.95-LIDC TX003 X EUR 1.50-M6SE \n"
"TX004 X EUR 5.00-TRAE TX005 X EUR 0.85-RAAD \n"
"TOTAL EUR 2019.90 BSR 0.90463353 \n"
"GRAND TOTAL EUR 2019.90 \n"
"MNL TK X/IST TK BRE2000.00NUC2000.00END ROE1.000000 \n"
" \n"
" 18.FE NONEND/TK ONLY \n"
" 19.FM *F*0.00 \n"
" 20.FP INV \n"
" 21.FV TK")
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