http://www.perlmonks.org?node_id=616269


in reply to Don't Use Regular Expressions To Parse IP Addresses!

If you do use a regular expressions to parse IPv4 in decimal, you could use:
(1?\d\d?|2[0-4]\d|25[0-5])(\.(1?\d\d?|2[0-4]\d|25[0-5])){3}

Replies are listed 'Best First'.
Re^2: Don't Use Regular Expressions To Parse IP Addresses!
by Anonymous Monk on Nov 08, 2007 at 00:07 UTC
    Not really - the above regex is wrong. Try it on 10.76.110.219 and it will match only 10.76.110.21 (since 1?\d\d? will match 21 and stop and not look for the 2[0-4]\d rule)
      It works inside the correct context. For example, if you supply a leading ^ and trailing $ then all is well. You have to supply your own context.