I am working on a cmd.Cmd-based program, and normally could just split the string and get the right parts.
Now I have a case where I could have two or three words in the string that need to be grouped into the same thing. Then I realized that I'm not the only person who has had to deal with this, and I'm wondering if my solution is the best one out there or if this is as ugly at it feels? Code below ....... #x('Seattle 456') -> ('Seattle', '456') #x('"Portland Alpha" 123') -> ('Portland Alpha', '123') #x("'Portland Beta' 789') -> ('Portland Beta', '789') def x(line): res = [] append = False appended = None quote = None for item in line.split(): if append: if item.endswith(quote): appended.append(item[:-1]) res.append(' '.join(appended)) quote = None appended = None append = False else: appended.append(item) else: if item[0] in ["'",'"']: append = True appended = [item[1:]] quote = item[0] else: res.append(item) return res ...... This seem really ugly. Is there a cleaner way to do this? Is there a keyword I could search by to find something nicer? Thanks, Josh -- http://mail.python.org/mailman/listinfo/python-list