diff --git a/account_banking_uk_hsbc/mt940_parser.py b/account_banking_uk_hsbc/mt940_parser.py index 0243ca679..d4a6a2ba0 100644 --- a/account_banking_uk_hsbc/mt940_parser.py +++ b/account_banking_uk_hsbc/mt940_parser.py @@ -31,6 +31,7 @@ class HSBCParser(object): def __init__( self ): recparse = dict() + patterns = {'ebcdic': "\w/\?:\(\).,'+{} -"} # MT940 header recparse["20"] = ":(?P20):(?P.{1,16})" @@ -43,16 +44,18 @@ class HSBCParser(object): + "(?P[\d,]{1,15})" # Transaction - recparse["61"] = ":(?P61):" \ - + "(?P\d{6})(?P\d{4})?" \ - + "(?PR?[CD])" \ - + "(?P[A-Z])?" \ - + "(?P[\d,]{1,15})" \ - + "(?P[A-Z][A-Z0-9]{3})" \ - + "(?P[A-Za-z0-9 _-]{1,16})" \ - + "(?://)" \ - + "(?P[A-Za-z0-9 _]{1,16})?" \ - + "(?:\n(?P[A-Za-z0-9 _.]))?" + recparse["61"] = """\ +:(?P61):\ +(?P\d{6})(?P\d{4})?\ +(?PR?[CD])\ +(?P[A-Z])?\ +(?P[\d,]{1,15})\ +(?P[A-Z][A-Z0-9]{3})\ +(?P[%(ebcdic)s]{1,16})\ +(?://)\ +(?P[%(ebcdic)s]{1,16})?\ +(?:\n(?P[%(ebcdic)s]))?\ +""" % (patterns) # Further info recparse["86"] = ":(?P86):" \