validate string representation of a timedelta

CM cmpython at gmail.com
Tue Jun 29 16:40:38 EDT 2010


On Jun 29, 8:00 am, Thomas Jollans <tho... at jollans.com> wrote:
> On 06/29/2010 03:41 AM, CM wrote:
>
>
>
> > I'm looking for a good way to check whether a certain string is
> > valid.  It is a string representation of a Python timedelta object,
> > like this:  '0:00:03.695000'
>
> > (But the first place, the hours, could also be double digits)
>
> > In trying to figure out how to validate that, I saw this page which
> > creates a parseTimeDelta(s) function, which takes that kind of string
> > and returns a timedelta object:
>
> >http://kbyanc.blogspot.com/2007/08/python-reconstructing-timedeltas-f...
> > (and I agree that this sort of function should come standard with
> > datetime)
>
> > I modified the code to accept microseconds, too, and I can use it now
> > by trying to parse my candidate string and if it throws an exception,
> > rejecting that string as invalid.  It works fine on strings that are
> > not even close to my format, like '0 min'. But it doesn't throw an
> > exception on something like:  '0:00:03.695000extrajunk'
>
> > I'd like it to be pickier than that with the validation and only
> > accept strings which are truly string representations of timedelta
> > objects.  But I have not learned regex yet, so am not sure how to
> > modify parseTimeDetla so it wouldn't work with
> > '0:00:03.695000extrajunk'.
>
> > My question:  is there a simple way to modify the parseTimeDelta so
> > that it will work ONLY with a string that would be the string
> > representation of a timedelta object?
>
> If you want the end of the regexp to correspond to the end of the
> string, add a "$" at the end of the regexp.

Thanks.  That works to do what I need.

Che



More information about the Python-list mailing list