[EMAIL PROTECTED] wrote: > I have an if-elif chain in which I'd like to match a string against > several regular expressions. Also I'd like to use the match groups > within the respective elif... block. The C-like idiom that I would > like to use is this: > > if (match = my_re1.match(line): > # use match > elsif (match = my_re2.match(line)): > # use match > elsif (match = my_re3.match(line)) > # use match > > ...buy this is illegal in python. The other way is to open up an else: > block in each level, do the assignment and then the test. This > unneccessarily leads to deeper and deeper nesting levels which I find > ugly.
How about this (untested) code: for re in (re1, re2, re3): match = re.match(line) if match: # use it This requires that "use it" means the same for each regular expression though... Uli -- Sator Laser GmbH Geschäftsführer: Thorsten Föcking, Amtsgericht Hamburg HR B62 932 -- http://mail.python.org/mailman/listinfo/python-list