In article <roy-D0E658.17013521042001 at news.panix.com>, "Roy Smith" <roy at panix.com> wrote: > What if I want to execute different code depending on which expression I > matched? Something along the lines of (pseudocode): > > if (m = e1.match(line)): > text1 = m.group(1) > do_complicated_processing (text1) > elif (m = e2.match(line)): > text1 = m.group(1) > text2 = m.group(2) > print text1, text2 > elif (m = e3.match(line)): > return You could do def meaningful_name_1(matchobject): do_complicated_processing(matchobject.group(1)) def meaningful_name_2(matchobject): ...etc re_dispatch = {re.compile(blah):meaningful_name_1, re.compile(durh):meaningful_name_2 ..etc } for re, func in re_dispatch.items(): m = re.match(line) if m: func(m) break else: no match found -- Barnabas T. Rumjuggler Thou hast been called, O Sleep! The friend of woe, But 'tis the happy who have called thee so. -- Robert Southey
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4