fork download
  1. import re
  2. from pprint import pprint
  3.  
  4. pattern = r"(\w+:[^|]+\|\s\d\d\s\|(?:\s\d{4}\s\|){2}\s.{2}\d{4}\s\|\s-?\d+(?:\.\d+)?),"
  5. s = "ICS: Basic Maintenance | 30 | 5877 | 0000 | IT0000 | 12000.0,ICS: E-Rate discount (85%) | 30 | 5877 | 0000 | IT0000 | -10200.0,ICS: Basic Maintenance | 40 | 5877 | 0000 | IT0000 | 9000.0,ICMS: E-Rate discount (85%) | 40 | 5877 | 0000 | IT0000 | -7650.0,ICS: Basic Maintenance | 20 | 5877 | 0000 | IT0000 | 13500.0,ICS: E-Rate discount (85%) | 20 | 5877 | 0000 | IT0000 | -11475.0,ICCMS: Basic Maintenance | 70 | 5877 | 0000 | IT0000 | 12000.0,ICCMS: E-Rate discount (85%) | 70 | 5877 | 0000 | IT0000 | -10200.0,ITSM: Laptops, Desktops, Computers | 30 | 4400 | IT0000 | 720400.0"
  6.  
  7. pprint(list(filter(None, re.split(pattern, s))))
Success #stdin #stdout 0.02s 9808KB
stdin
Standard input is empty
stdout
['ICS: Basic Maintenance | 30 | 5877 | 0000 | IT0000 | 12000.0',
 'ICS: E-Rate discount (85%) | 30 | 5877 | 0000 | IT0000 | -10200.0',
 'ICS: Basic Maintenance | 40 | 5877 | 0000 | IT0000 | 9000.0',
 'ICMS: E-Rate discount (85%) | 40 | 5877 | 0000 | IT0000 | -7650.0',
 'ICS: Basic Maintenance | 20 | 5877 | 0000 | IT0000 | 13500.0',
 'ICS: E-Rate discount (85%) | 20 | 5877 | 0000 | IT0000 | -11475.0',
 'ICCMS: Basic Maintenance | 70 | 5877 | 0000 | IT0000 | 12000.0',
 'ICCMS: E-Rate discount (85%) | 70 | 5877 | 0000 | IT0000 | -10200.0',
 'ITSM: Laptops, Desktops, Computers | 30 | 4400 | IT0000 | 720400.0']