我可以使用什么正则表达式来匹配以点十进制表示法表示的任何有效IP地址?

pla*_*etp 9 regex perl ip-address

我可以使用什么正则表达式来匹配以点十进制表示法表示的任何有效IP地址?

mur*_*uga 15

if($ip=~/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ &&(($1<=255  && $2<=255 && $3<=255  &&$4<=255 )))
     {
         print "valid\n";
     }
     else
     {
         print "Invalid\n";
     }
Run Code Online (Sandbox Code Playgroud)

  • 亲爱的朋友,请从现在开始推荐Data :: Validate :: IP.亲爱的朋友 (3认同)
  • @xxxxxxx为什么?这个代码很简单,可以检查.IPv4很可能不会改变,在某些环境中添加模块依赖性并不是那么简单. (2认同)

小智 5

我喜欢这个......就像Steve Hajducko一样,但是使用引用的reg ex rooooock!

my $ip = '120.140.255.254'; # for example

my $ipno = qr/
    2(?:5[0-5] | [0-4]\d)
    |
    1\d\d
    |
    [1-9]?\d
/x;

if ( $ip =~ /^($ipno\.){3}$ipno$/ ){
    print "IP OK\n";
};
Run Code Online (Sandbox Code Playgroud)

我去英国剑桥的Arm接受采访.他们让我在董事会上写了一篇,然后我写了一些蹩脚的......然后......沉溺于我的不良尝试,着手制作一个更好的.失败的驱使?或者也许只是真的被它烦恼了.我还有工作:)