Alan Gauld wrote: > But I sure agree with it. The problem with Regex is that they can > be just a bit too powerful. To cite another programming proverb, > this time by Bjarne Stroustrup I think: > > "C makes it easy to shoot yourself in the foot; > C++ makes it harder, but when you do, > it blows away your whole leg." > > Regex can be like that too.
I guess it's time to trot out the famous quote of Jamie Zawinsky: > Some people, when confronted with a problem, think > “I know, I'll use regular expressions.” Now they have two problems. In this case I think regex is not the best solution. A better way to validate a date is to try to use it as a date. The regex '\d\d/\d\d/\d\d\d\d' accepts all kinds of non-dates such as 99/99/9999, not to mention accepting US format dates such as 12/25/2006 when you want 25/12/2006. I would use import time try: time.strptime(date, '%d/%m/%Y') # it's a valid date except ValueError: # not a valid date which at least restricts the input to something that is a valid date, though it won't detect that a user typed 11/5/2006 when they mean 5/11/2006. Regular expressions are an extremely powerful and useful tool that every programmer should master and then put away and not use when there is an alternative :-) Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor