2012/12/4 Nick Mellor <thebalance...@gmail.com>: > I love the way you guys can write a line of code that does the same as 20 of > mine :) > I can turn up the heat on your regex by feeding it a null description or > multiple white space (both in the original file.) I'm sure you'd adjust, but > at the cost of a more complex regex. > Meanwhile takewith and dropwith are behaving themselves impeccably but my > while loop has fallen over. > > Best, > Nick >> [...] > --
Hi, well, for what is it worth, both cases could be addressed quite easily, with little added complexity - e.g.: make the description part optional, allow multiple whitespace and enforce word boundary after the product name in order to get rid of the trailing whitespace in it: >>> re.findall(r"(?m)^([A-Z\s]+\b)(?:\s+(.*))?$", "CAPSICUM RED fresh from >>> QLD\nCAPSICUM RED fresh from Queensland\nCAPSICUM RED") [('CAPSICUM RED', 'fresh from QLD'), ('CAPSICUM RED', 'fresh from Queensland'), ('CAPSICUM RED', '')] >>> However, it's certainly preferable to use a solution you are more comfortable with, e.g. the itertools one... regards, vbr -- http://mail.python.org/mailman/listinfo/python-list