dotted-quad RE

Rob rob at cowsnet.com.au
Thu Jul 11 08:22:06 CDT 2002


> Yup, I've got a very simple way:
> 
> 	use Regexp::Common;
> 
> 	print "matched\n" if $input =~ /^$RE{net}{IPv4}$/;

Actually Joshua's regex is very close to the pattern matching in
Regex::Common ...

my %IPunit = (
        dec => q{(?k:25[0-5]|2[0-4]\d|[0-1]??\d{1,2})},
        oct => q{(?k:[0-3]??[0-7]{1,2})},
        hex => q{(?k:[0-9A-F]{1,2})},
        bin => q{(?k:[0-1]{1,8})},
);

$defsep = '[.]';

pattern name   => [qw( net IPv4 )],
        create =>
"(?k:$IPunit{dec}$defsep$IPunit{dec}$defsep$IPunit{dec}$defsep$IPunit{de
c})",
        ;

Another way would be that from Mastering Regular Expressions ...

^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.
([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])

But I like Paul's approach with Regex::Common, so I would probably use
that myself :-)

Cheers,
Rob


Rob Casey
Business Manager, Senior IT Consultant
Cowsnet Internet and Professional Services
http://www.cowsnet.com.au

 

> -----Original Message-----
> From: owner-melbourne-pm at pm.org 
> [mailto:owner-melbourne-pm at pm.org] On Behalf Of Paul Fenwick
> Sent: Thursday, July 11, 2002 10:52 PM
> To: Joshua Goodall
> Cc: Melbourne Perl Mongers
> Subject: Re: dotted-quad RE
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3222 bytes
Desc: not available
Url : http://mail.pm.org/archives/melbourne-pm/attachments/20020711/b6916244/smime.bin


More information about the Melbourne-pm mailing list