[英]Regex for IP address is not matching
I was attempting to collect an ip from a user and do some basic error checking and hacking off the unnecessary white space, but I am running into some issues with what I assume to be my regular expression. 我试图从用户那里收集一个ip并做一些基本的错误检查和黑客攻击不必要的空白区域,但是我遇到了一些我认为是我的正则表达式的问题。
my $serverIP;
print "Enter vSphere server's IP\n";
while(<>){
$serverIP = $_;
print "DEBUG <$serverIP>\n";
if (/$serverIP = (\d+\.\d+\.\d+\.\d+)/){
print "Match found $1\n";
$serverIP = $1;
last;
}
else{
print "Not an IP\n";
print "Please enter a valid IP\n";
}
}
print "I found $serverIP!\n";
I know the regex is simple but it does not match 1.1.1.1 as I assume it should 我知道正则表达式很简单但它与1.1.1.1不匹配,因为我认为它应该
Change: 更改:
if (/$serverIP = (\d+\.\d+\.\d+\.\d+)/){
to: 至:
if ($serverIP =~ /(\d+\.\d+\.\d+\.\d+)/){
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.