我写了这段代码,但它不起作用。 有人能指出问题吗?
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";
}
}
编辑: 我只想提取IP地址,不进行任何验证。
我写了这段代码,但它不起作用。 有人能指出问题吗?
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";
}
}
编辑: 我只想提取IP地址,不进行任何验证。
my $rx = qr/^(?!(\.))(\.?(\d{1,3})(?(?{$^N > 255})(*FAIL))){4}$/;
if('192.168.1.2' =~ $rx){
print "OK\n";
}
它使用了一些来自perl正则表达式匹配的特性(参见perlre手册):
$ip = "10.255.256.1";
# will accept valid ips
if ($ip =~ m/^([1|2][0-9]{1,2})\.([0-255]{1,3}\.){2}[0-255]{1,3}/ && ($1 <=255)) {
print "This is a valid ip: $ip \n";
} else {
print "This is not a valid ip: $ip \n";
}
[0-255]
根本不会做你认为它应该做的事情。 - tripleee