On 4 Apr, 02:14, bwgoudey <bwgou...@gmail.com> wrote: > I have a lot of if/elif cases based on regular expressions that I'm using to > filter stdin and using print to stdout. Often I want to print something > matched within the regular expression and the moment I've got a lot of cases > like: > > ... > elif re.match("^DATASET:\s*(.+) ", line): > m=re.match("^DATASET:\s*(.+) ", line) > print m.group(1)) > > which is ugly because of the duplication but I can't think of a nicer of way > of doing this that will allow for a lot of these sorts of cases. Any > suggestions? > -- > View this message in > context:http://www.nabble.com/Best-way-to-extract-from-regex-in-if-statement-... > Sent from the Python - python-list mailing list archive at Nabble.com.
How about something like: your_regexes = [ re.compile('rx1'), re.compile('rx2'), # etc.... ] for line in lines: for rx in your_regexes: m = rx.match(line) if m: print m.group(1) break # if only the first matching regex is required, otherwise leave black for all Untested, but seems to make sense hth, Jon -- http://mail.python.org/mailman/listinfo/python-list