我有路由器命令的输出:
Interface IP-Address OK? Method Status Protocol
POS0/0/0 10.137.99.2 YES NVRAM up up
Run Code Online (Sandbox Code Playgroud)
我想找一个正则表达式来识别IP地址:
我尝试过:
if ( $_ =~ m/(.*?)\s*?(.*?)\s*?(.*?)\s*?(.*)/i ){
#print "$1->$2\n";
$sources{$2}=$1;
}
Run Code Online (Sandbox Code Playgroud)
然后$2用作ip.
但是,它不起作用; 我哪里错了?
if ($_ =~ /\b(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\b/)
{
print "IP: $1\n";
}
Run Code Online (Sandbox Code Playgroud)
如果您只想获取第二列,那么您应该使用split而不是正则表达式.获得字段#2:
@field = split(/ +/, $_);
print "$field[1]";
Run Code Online (Sandbox Code Playgroud)