Perl正则表达式匹配IP地址

cpp*_*der 11 regex ip perl

我写了这段代码,但它不起作用.有人可以指出这个问题吗?

sub match_ip()
{
  my $ip = "The IP address is 216.108.225.236:60099";
  if($ip =~ /(\d{1-3}\.\d{1-3}\.\d{1-3}\.\d{1-3}\:\d{1-5})/)
  {
      print "$1\n";
  }
}
Run Code Online (Sandbox Code Playgroud)

编辑:我想提取IP地址,而不是做任何验证.

Tot*_*oto 11

更改{1-3}{1,3}相同的{1-5}- >{1,5}

  • @briandfoy - 这对你来说也是一个可以接受的答案吗?正如我之前提到的,有时OP需要简单的解决方案来解决他的问题,而不是复杂的代码.在这种情况下,不需要IP验证,因为OP可能需要解析包含有效IP地址的输出.所以这个答案正是OP所期待的.感谢M42发布满足OP需求的简单答案. (2认同)

Joe*_*ger 5

在TIMTOWTDI的精神中,这里是另一个:可能具有你想要的regexen 的Regexp::Common::net部分Regexp::Common.