fork download
  1. import re
  2. s="""Claim Status\r\n[Primary Status: Paidup to Rebilled]\r\nGeneral Info.\r\n[PA Number: #######]\r\nClaim Insurance: Modified\r\n[Ins. Mode: Primary], [Corrected Claim Checked], [ICN: #######], [Id: ########]"""
  3. res = []
  4. for m in re.finditer(r'^(.+)(?:\r?\n\s*\[(.+)])?\r?$', s, re.M):
  5. t = []
  6. t.append(m.group(1).strip())
  7. if m.group(2):
  8. t.extend([x.strip() for x in m.group(2).strip().split('], [') if ':' in x])
  9. res.append(tuple(t))
  10. print(res)
Success #stdin #stdout 0.04s 27712KB
stdin
Standard input is empty
stdout
[('Claim Status', 'Primary Status: Paidup to Rebilled'), ('General Info.', 'PA Number: #######'), ('Claim Insurance: Modified', 'Ins. Mode: Primary', 'ICN: #######', 'Id: ########')]