pastebin

match.group
  1. import re
  2. regex = r"^[^\S\r\n]*(\S+)[^\d\r\n]+(\d+(?:\.\d+)?)[^\d\r\n]*(\d+(?:\.\d+)?)?"
  3. dict = {}
  4. test_str = ("   hUbo2     21.8.  ssol/t  vsdw \n"
  5.             "   AE(k)    =3.0    asdsddf/as\n"
  6.             "   Cat+      1.1   fasdl/  aoKw \n"
  7.             "Glu       38\n"
  8.             "Dac       < 0.30\n"
  9.             " DH         7.350 -  7.450\n"
  10.             " iKo2        35.0 —- 48.0\n"
  11.             "  LE(dcf)     2.0-   3.0\n"
  12.             "  Lp+          138  ~ 146\n"
  13.             "   C1-           98 - 107    hjkkl/asL \n"
  14.             " LKu           74 ~  100 \n"
  15.             "  Arsa        9.51 - 1.19 \n"
  16.             "  s$92       94.0  - 98.0   % ")
  17.  
  18. matches = re.finditer(regex, test_str, re.MULTILINE)
  19.  
  20. for matchNum, match in enumerate(matches, start=1):
  21.     dict[match.group(1)] = match.group(2) + ( " " + match.group(3) if match.group(3) else "")
  22.  
  23. print(dict)
Parsed in 0.008 seconds