Hi Shidan!
on Wed, 22 Jun 2005 00:28:44 -0400 Shidan <[EMAIL PROTECTED]> wrote :
---------------------------------------------------------------------------------------------
Shidan > Hi I have a list of regular expression patterns like such:
Shidan >
Shidan > thelist =
['^594694.*','^689.*','^241.*','^241(0[3-9]|1[0145]|2[0-9]|3[0-9]|41|5[1-37]|6[138]|75|8[014579]).*']
Shidan >
Shidan >
Shidan > Now I want to iterate thru each of these like:
Shidan >
Shidan > for pattern in thelist:
Shidan > regex=re.compile(pattern)
Shidan > if regex.match('24110'):
Shidan > the_pattern = pattern
Shidan > .
Shidan > .
Shidan > sys.exit(0)
Shidan >
Shidan > but in this case it will pick thelist[2] and not the list[3] as I
wanted to,
Shidan > how can I have it pick the pattern that describes it better from the
list.
Perhaps you can reorder "thelist" in such a way, that the more extact pattern
come's first
thelist =
['^594694.*','^689.*','^241(0[3-9]|1[0145]|2[0-9]|3[0-9]|41|5[1-37]|6[138]|75|8[014579]).*','^241.*']
So you cann exit if
'^241(0[3-9]|1[0145]|2[0-9]|3[0-9]|41|5[1-37]|6[138]|75|8[014579]).*' is found,
because here
you want 241 followed by the number-combination which is an exacter description
as '241.*'.
------------------- end ----------------------
HTH Ewald
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor