import re
regex = re.compile(r"^.*TELEPHONE NUMBER(.*)DATE ACCOUNT OPENED(.*)LANG CODE(.*)CHAIN CODE(.*)TRANSIT ROUTING NUM(.*)DATE OF LAST REVIEW(.*)DATE OF NEXT REVIEW(.*)ALT TRANSIT ROUTING NUM(.*)AVERAGE FLOAT DAYS(.*)SPECIAL CONTROL FLAGS(.*)SEASONAL MERCHANT(.*)STATEMENT HOLD CODE(.*)SEND ACQUIRER(.*)STATEMENT MAIL FLAG(.*)MONTHLY ACH FLAG(.*)MERCHANT NAME(.*)MERCHANT TYPE(.*)DDA NUMBER(.*)ALT DDA NUMBER(.*)AUTH INC GRID(.*)AUTH EXP GRID(.*)CROSS REFERENCE NO.(.*)ETC NON FDR FLAG(.*)ETC VENDOR ID(.*)SALES RESPONSIBILITY(.*)USER DEF INC GRID(.*)USER DEF EXP GRID(.*)TAXPAYER ID(.*)ACCOUNT1 FEE FLAG(.*)ACCOUNT1 START(.*)STOP(.*)MRCH ADV FLAG(.*)ACCOUNT2 FEE FLAG(.*)ACCOUNT2 START(.*)STOP(.*)TERMINAL START(.*)STOP(.*)ACCOUNT3 FEE FLAG(.*)ACCOUNT3 START(.*)STOP(.*)SPARK EXCLUSION CD(.*)ACCOUNT4 FEE FLAG(.*)ACCOUNT4 START(.*)STOP(.*)PAYEE FLAG CD(.*)ACCOUNT5 FEE FLAG(.*)ACCOUNT5 START(.*)STOP(.*)EIDS IND(.*)RECURRING FEE FLAG(.*)RECURRING FEE IND(.*)BUW INDICATOR(.*)TURF CD(.*)TURF EFF DT(.*)TAX EFF YEAR(.*)BANKCARD DBA(.*)TIMS ACCT ID(.*) RETAIL DBA(.*)CUST BUSINESS ID(.*)CUST BUS RELATIONSHIP CD(.*)DEPOSIT TYPE(.*)ETC ACCOUNT TYPE(.*)DEVICE TYPE(.*)EXCLUDE ADJ FLAG(.*)MC\/V POS(.*)DISCOUNT CALCULATION(.*)ROUND DISCOUNT(.*)REBATE DISTRIBUTE(.*)REBATE OPTION(.*)REBATE PERIOD(.*)", flags=re.MULTILINE)
test_str = ("0 TELEPHONE NUMBER 612-874-8702 DATE ACCOUNT OPENED 01/27/14\n"
" LANG CODE - EN CHAIN CODE TRANSIT ROUTING NUM 96001013\n"
" DATE OF LAST REVIEW 00/00 DATE OF NEXT REVIEW 01/15 ALT TRANSIT ROUTING NUM\n"
" AVERAGE FLOAT DAYS 00-00 SPECIAL CONTROL FLAGS SEASONAL MERCHANT NO\n"
" STATEMENT HOLD CODE Y - SEND ACQUIRER STATEMENT MAIL FLAG M - MERCH ADDRESS MONTHLY ACH FLAG 1 - MERCHANT NAME\n"
" MERCHANT TYPE REGULAR DDA NUMBER 12000069001 ALT DDA NUMBER\n"
" AUTH INC GRID P801 AUTH EXP GRID 000 CROSS REFERENCE NO. 0000326\n"
" ETC NON FDR FLAG N ETC VENDOR ID SALES RESPONSIBILITY 0001\n"
" USER DEF INC GRID 000 USER DEF EXP GRID 000 TAXPAYER ID 30-0016022\n"
" ACCOUNT1 FEE FLAG 3 ACCOUNT1 START 00/00 STOP 00/00 MRCH ADV FLAG 0\n"
" ACCOUNT2 FEE FLAG 1 ACCOUNT2 START 00/00 STOP 00/00 TERMINAL START 00/00 STOP 00/00\n"
" ACCOUNT3 FEE FLAG 1 ACCOUNT3 START 00/00 STOP 05/17 SPARK EXCLUSION CD N\n"
" ACCOUNT4 FEE FLAG 0 ACCOUNT4 START 00/00 STOP 00/00 PAYEE FLAG CD S\n"
" ACCOUNT5 FEE FLAG 1 ACCOUNT5 START 00/00 STOP 00/00 EIDS IND N\n"
" RECURRING FEE FLAG RECURRING FEE IND BUW INDICATOR\n"
" TURF CD A TURF EFF DT 00/00/0000 TAX EFF YEAR 0000\n"
" BANKCARD DBA - ACADIA CAFE /MINNEAPOLIS /MN TIMS ACCT ID O0529808390100022000\n"
" RETAIL DBA - ACADIA CAFE MINNEAPOLIS MN\n"
" CUST BUSINESS ID CUST BUS RELATIONSHIP CD\n"
" - - - - - - - - - - - - - - - - - - - - - - - - - - - - MERCHANT OPTIONS - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n"
" DEPOSIT TYPE 3 - ETC ETC ACCOUNT TYPE 7 - RESERVED DEVICE TYPE NONE\n"
" EXCLUDE ADJ FLAG Y - EXCL ADJ/CB MC/V POS 0922\n"
" DISCOUNT CALCULATION - 2 ROUND DISCOUNT - N\n"
" REBATE DISTRIBUTE REBATE OPTION N - NO REBATE REBATE PERIOD ")
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