import re line = "'hello world' 'foo' 'bar' '\"baz zab\"'" delimiter = ' ' pattern = re.compile(r'''((?:[^%s"']|"[^"]*"|'[^']*')+)''' % delimiter) print(pattern.split(line)[1::2])