fork download
  1. import re
  2. strings= ["95031B2\tR\tC01 N1 P93 R-- 12:39:18.540 08/05/20 0000002802 R - No_barcode FLC F LR 7.673353 sccm Pt 25.288202 psig FL 536.651917 sccm EDC 0.000000 sccm PQ 7.668324 sccm QF 536.289246 sccm QP 25.287605 psig LLQ -0.109524 sccm HLQ 4.440174 sccm CLF 1.429953 sccm MF 0.000000 sccm LF 100.000015 sccm MQF 0.000000 sccm LQF 100.000015 sccm FPR 25.290846 psig \r\n", '5102060\tR\tC01 N1 P93 R-- 12:38:52.140 08/05/20 0000002801 FO - No_barcode \r\n']
  3. pattern = ['(?P<time>\d\d:\d\d:\d\d.\d{3})\s',
  4. '(?P<date>\d\d/\d\d/\d\d)\s',
  5. '(?P<sno>\d{10})\s',
  6. '(?P<status>\w{1,2}).*?-',
  7. '\s*',
  8. '(?P<bcode>No_barcode|\W{20})',
  9. '(?:\s+',
  10. '(?P<type>\w{3}))?',
  11. '(?:.*?',
  12. '(?P<pr>Pt.*?\d*[.]?\d*\s[a-z]+))?'
  13. '(?:\s{1,3}',
  14. '(?P<fl>FL.*?\d*[.]?\d*\s[a-z]+))?'
  15. ]
  16. rx = re.compile(r''.join(pattern))
  17. for s in strings:
  18. m = rx.search(s)
  19. if m:
  20. print( m.groups() )
Success #stdin #stdout 0.02s 9568KB
stdin
Standard input is empty
stdout
('12:39:18.540', '08/05/20', '0000002802', 'R', 'No_barcode', 'FLC', 'Pt   25.288202 psig', 'FL  536.651917 sccm')
('12:38:52.140', '08/05/20', '0000002801', 'FO', 'No_barcode', None, None, None)