fork download
  1. import re
  2. mystring = '''-desc none -type used -cost med -color blue
  3. -desc none -msg This is a a message -name test
  4. -desc "(-type old -cost high)" -color green'''
  5.  
  6. mydict = {}
  7. for line in mystring.splitlines():
  8. key_value = re.findall(r'(-\w+)\s+("[^"]*"|.*?)(?=$|\s*-\w+\s)', line)
  9. print(key_value)
Success #stdin #stdout 0.02s 27712KB
stdin
Standard input is empty
stdout
[('-desc', 'none'), ('-type', 'used'), ('-cost', 'med'), ('-color', 'blue')]
[('-desc', 'none'), ('-msg', 'This is a a message'), ('-name', 'test')]
[('-desc', '"(-type old -cost high)"'), ('-color', 'green')]