re question

Dan Bar Dov bardov at gmail.com
Fri Sep 21 07:31:32 CEST 2007


On 9/20/07, Matt McCredie <mccredie at gmail.com> wrote:
>
>
> > Any common knowledge IP matching RE?
>
> I don't know if there is any common knowledge RE, but I came up with
> the following:
>
>
> r"((1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.){3}(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)")


Thank you. I will use that!

>
> I generally discourage people from using REs. I think the folowing is
> much easier to read:


Well, I need the regex to be used withing a parser (yeanpypa or
ZestyParser),  so I need it to be a regex to be matched against, and not a
piece  of code .
I could probably use a more simplistic re that does not check numeric
validity, and do that later, but your re would do both matching and
validation in one step.

Dan

def isip(x):
>     octs = x.split(".")
>     if len(octs) != 4:
>         return False
>     for oct in octs:
>         if len(oct) > 1 and oct[0] == "0":
>             return False
>         try:
>             if not 0 <= int(oct) < 256:
>                 return False
>         except ValueError:
>             return False
>     return True
>
> Both solutions seem to work, though I used a small set of test cases.
> Others may have better suggestions.
>
> Matt
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20070921/c64d997b/attachment.html>


More information about the Python-list mailing list