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 - [email protected] http://mail.python.org/mailman/listinfo/tutor
