Skip to content

Commit

Permalink
Added support for the multiline bank. Fixes: #99
Browse files Browse the repository at this point in the history
  • Loading branch information
wolph committed Jan 12, 2023
1 parent c7fab45 commit ec93246
Show file tree
Hide file tree
Showing 53 changed files with 523 additions and 152 deletions.
9 changes: 7 additions & 2 deletions mt940/tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,10 @@ def parse(self, transactions, value):
match.groupdict())
else: # pragma: no cover
self.logger.error(
'matching (%d) %r against %r', len(value), value,
'matching id=%s (len=%d) "%s" against\n %s',
self.id,
len(value),
value,
self.pattern)

part_value = value
Expand Down Expand Up @@ -301,7 +304,9 @@ class Statement(Tag):
\n? # apparently some banks (sparkassen) incorporate newlines here
(?P<amount>[\d,]{1,15}) # 15d Amount
(?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification Code
(?P<customer_reference>[^/\n]{0,16}) # 16x Customer Reference
# We need the (slow) repeating negative lookahead to search for // so we
# don't acciddntly include the bank reference in the customer reference.
(?P<customer_reference>((?!//)[^\n]){0,16}) # 16x Customer Reference
(//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference
(\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details
$'''
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/betterplace/amount_formats.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/betterplace/currency_in_25.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/betterplace/empty_86.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/betterplace/empty_entry_date.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/betterplace/empty_line.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/betterplace/missing_crlf_at_end.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/betterplace/sepa_mt9401.yml
Original file line number Diff line number Diff line change
Expand Up @@ -134,9 +134,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/betterplace/sepa_snippet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/betterplace/sepa_snippet_broken.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/betterplace/with_binary_character.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/cmxl/account_balance_credit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/cmxl/account_balance_debit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/cmxl/account_identification_iban.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/cmxl/account_identification_legacy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/cmxl/available_balance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/cmxl/closing_balance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/cmxl/mt940.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
8 changes: 5 additions & 3 deletions mt940_tests/cmxl/reference.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,11 @@ tags:
\ # code, if needed)\n \\n? # apparently some\
\ banks (sparkassen) incorporate newlines here\n (?P<amount>[\\d,]{1,15})\
\ # 15d Amount\n (?P<id>[A-Z][A-Z0-9 ]{3})? # 1!a3!c Transaction Type Identification\
\ Code\n (?P<customer_reference>[^/\\n]{0,16}) # 16x Customer Reference\n\
\ (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n (\\n?(?P<extra_details>.{0,34}))?\
\ # [34x] Supplementary Details\n $"
\ Code\n # We need the (slow) repeating negative lookahead to search for\
\ // so we\n # don't acciddntly include the bank reference in the customer\
\ reference.\n (?P<customer_reference>((?!//)[^\\n]){0,16}) # 16x Customer\
\ Reference\n (//(?P<bank_reference>.{0,23}))? # [//23x] Bank Reference\n\
\ (\\n?(?P<extra_details>.{0,34}))? # [34x] Supplementary Details\n $"
- 98
62: !!python/object:mt940.tags.ClosingBalance
re: *id001
Expand Down
Loading

0 comments on commit ec93246

Please sign in to comment.