# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"^ -{132}(?:\R(?! -{132}$|.*\bCUN\b).*)*+\R.*\bCUN\b.*(?:\R(?! -{132}$).*)*"
test_str = (" ------------------------------------------------------------------------------------------------------------------------------------\n"
" ALPA MEAL CODE UPDATES: M* => PILOT PAID MEAL Mm => MEAL MOVED TO THIS SEGMENT Mc => THIS MEAL WAS CHANGED \n"
"1DSL EFF 04/01/19 THRU 04/30/19 737 LOS ANGELES APR 2019 04/01/19 PAGE 58 \n"
" EQP FLT# DPT ARV DPTR ARVL GRND ML FTM ACM DTM IND D/C SU|MO TU WE TH FR|SA \n"
" EFF 04/06/19 THRU 04/06/19 ID L5265 - BASIC (HNL) |-- -- -- -- --| 6 \n"
" RPT: 0803 --|-- -- -- -- --|-- \n"
" 37K 489 LAX DEN 0903 1228 1.02 2.25 2.25 --|-- -- -- -- --|-- \n"
" 37K 1472 DEN SAN 1330 1447 16.38 L 2.17 4.42 6.59 .00 --|-- -- -- -- --|-- \n"
" RLS: 1502 HTL: XXXXXX SAN DIEGO XXX-XXX-XXXX OP=> XXX-XXX-XXXX --|-- -- \n"
" XXXXXX XXX-XXX-XXXX \n"
" RPT: 0640 \n"
" 37X 662 SAN SFO 0725 0907 1.39 B 1.42 1.42 \n"
" 37K 1122 SFO HNL 1046 1328 20.32 L S 5.42 7.24 10.03 .00 \n"
" RLS: 1343 HTL: XXXXXX WAIKIKI XXX-XXX-XXXX OP=> XXX-XXX-XXXX \n"
" XXXXXX XXX-XXX-XXXX \n"
" RPT: 0915 \n"
" 37K 1221 HNL LAX 1000 1834 1.16 L S 5.34 5.34 \n"
" 37K 2048 LAX LAS 1950 2112 17.23 1.22 6.56 9.12 .00 \n"
" RLS: 2127 HTL: XXXXXX VEGAS XXX-XXX-XXXX OP=> XXX-XXX-XXXX \n"
" XXXXXX XXX-XXX-XXXX \n"
" RPT: 1350 \n"
" 37K 640 LAS ORD 1435 2012 1.03 3.37 3.37 \n"
" 37K 1186 ORD LAX 2115 2344 D 4.29 8.06 10.09 .00 \n"
" RLS: 2359 \n"
" DAYS- 4 CRD-27.08* FTM-27.08* TAFB- 87.56 INT- .00 NTE- .00 M$-229.74 T/C- .00 .34* \n"
" ------------------------------------------------------------------------------------------------------------------------------------\n"
" EFF 04/12/19 THRU 04/12/19 ID L5266 - BASIC |-- -- -- -- --|-- \n"
" RPT: 0803 --|-- -- -- -- 12|-- \n"
" 73Q 489 LAX DEN 0903 1228 1.17 2.25 2.25 --|-- -- -- -- --|-- \n"
" 37K 716 DEN AUS 1345 1653 1.02 L 2.08 4.33 --|-- -- -- -- --|-- \n"
" 37K 630 AUS IAH 1755 1855 1.01 1.00 5.33 --|-- -- \n"
" 37K 530 IAH SAT 1956 2059 17.10 1.03 6.36 11.11 .00 \n"
" RLS: 2114 HTL: XXXXXX SAN ANTONIO XXX-XXX-XXXX OP=> XXX-XXX-XXXX \n"
" XXXXXX XXX-XXX-XXXX \n"
" RPT: 1324 \n"
" 73G 1967 SAT ORD 1409 1655 1.10 2.46 2.46 \n"
" 37K 246 ORD TPA 1805 2155 21.05 D 2.50 5.36 7.46 .00 \n"
" RLS: 2210 HTL: XXXXXX TAMPA XXX-XXX-XXXX OP=> XXX-XXX-XXXX \n"
" XXXXXX \n"
" RPT: 1815 \n"
" 37K 352 TPA IAD 1900 2109 1.06 2.09 2.09 \n"
" 37K 1448 IAD LAX 2215 0049 D S 5.34 7.43 9.49 .00 \n"
" RLS: 0104 \n"
" DAYS- 4 CRD-20.00* FTM-19.55* TAFB- 65.01 INT- .00 NTE- 1.49 M$-159.29 T/C- .05 .25* \n"
" ------------------------------------------------------------------------------------------------------------------------------------\n"
" EFF 04/15/19 THRU 04/15/19 ID L5267 - BASIC (CAM) |-- -- -- -- --|-- \n"
" RPT: 0803 --|-- -- -- -- --|-- \n"
" 73Q 489 LAX DEN 0903 1228 3.40 2.25 2.25 --|15 -- -- -- --|-- \n"
" 37K 543 DEN MCO 1608 2137 15.53 3.29 5.54 10.49 .00 --|-- -- -- -- --|-- \n"
" RLS: 2152 HTL: XXXXXX ORLANDO XXX-XXX-XXXX OP=> XXX-XXX-XXXX --|-- -- \n"
" XXXXXX XXX-XXX-XXXX \n"
" RPT: 1245 \n"
" 73Q 1601 MCO EWR 1330 1613 3.06 2.43 2.43 \n"
" 37K 1054 EWR CUN 1919 2220 18.40 D 4.01 6.44 11.05 .00 \n"
" RLS: 2250 HTL: XXXXXX CANCUN XXX-XXX-XXXX OP=> XXX-XXX-XXXX \n"
" XXXXXX XXX-XXX-XXXX \n"
" RPT: 1615 \n"
" 37K 1118 CUN SFO 1700 2051 1.54 D S 5.51 5.51 \n"
" 37K 257 SFO LAX 2245 0020 1.35 7.26 10.20 .00 \n"
" RLS: 0035 \n"
" DAYS- 4 CRD-20.04* FTM-20.04* TAFB- 64.32 INT- 9.52 NTE- .00 M$-170.94 T/C- .00 .25* \n"
" ------------------------------------------------------------------------------------------------------------------------------------")
matches = re.finditer(regex, test_str, re.MULTILINE)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
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