fork download
  1. import re
  2.  
  3. s = ("# control.dat\n"
  4. "X001 A3 100.0 20.0 40.0\n"
  5. " A5 124.0 \n"
  6. " I3 125.0 \n"
  7. "X002 C3 200.054 20.494 45.0\n"
  8. " C5 122.0\n"
  9. " K3 122.01\n"
  10. " \n")
  11.  
  12. pattern = r"^X0\d+\s+\w+\s*(?P<PARAM_1>\d+(?:\.\d+)?)\s+(?P<PARAM_2>\d+(?:\.\d+)?)\s+(?P<PARAM_3>\d+(?:\.\d+)?)"
  13. r = re.compile(r"^X0\d+\s+\w+\s*(?P<PARAM_1>\d+(?:\.\d+)?)\s+(?P<PARAM_2>\d+(?:\.\d+)?)\s+(?P<PARAM_3>\d+(?:\.\d+)?)", re.MULTILINE)
  14. dict = {'PARSED': [m.groupdict() for m in r.finditer(s)]}
  15.  
  16. print(dict)
Success #stdin #stdout 0.01s 7496KB
stdin
Standard input is empty
stdout
{'PARSED': [{'PARAM_1': '100.0', 'PARAM_3': '40.0', 'PARAM_2': '20.0'}, {'PARAM_1': '200.054', 'PARAM_3': '45.0', 'PARAM_2': '20.494'}]}