fork download
  1. import re
  2. l = ['foo bar', 'foo bar foo:bar', 'foo bar ']
  3. rx = re.compile(r'[^:\s]+|:|(?<!\S)(?!\S)')
  4. for s in l:
  5. print(f"'{s}'", '=>', rx.findall(s))
Success #stdin #stdout 0.03s 9476KB
stdin
Standard input is empty
stdout
'foo bar' => ['foo', 'bar']
'foo bar foo:bar' => ['foo', 'bar', 'foo', ':', 'bar']
'foo bar ' => ['foo', 'bar', '']