I wish it would leave the stuff in quotes in tact:
If you first split on your delimiter (which must have a matching one) you will obtain a list in which every odd position contains a string that was quoted. Step through the result and split the ones that are not quoted ones but don't do anything to the quoted ones.
### s='"Hi" there "Python Tutors" please help me'
delim='"'
# check for matching quotes if s.count(delim)%2<>0: print 'Unmatched delimiters in string' assert s.count(delim)%2==0
# split it s=s.split(delim)
# remove elements 1 at a time, putting result to end of list; # when you're done, the original list has been destroyed and # the correct list is in its place for i in range(len(s)): si=s.pop(0) #pop off the next one from the list if i%2==0: s.extend(si.split()) else: s.append(si) print s ###
OUTPUT: ['Hi', 'there', 'Python Tutors', 'please', 'help', 'me']
/c
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor