在Bash中,我可以通过
获取IP地址的最后一段$ A="10.10.10.46"
$ echo ${A##*.}
46
在Perl中可以轻松完成类似的事情吗?
答案 0 :(得分:3)
您可以通过将数字匹配到字符串的末尾来获取最后一个八位字节,
my $A = "10.10.10.46";
print $1 if $A =~ /([0-9]+)$/;
或通过拆分点字符并选择最后一个列表元素
my $num = ( split /[.]/, $A )[-1];
答案 1 :(得分:2)
Perl:
my $a = "10.10.10.46";
print $1 if $a =~ /\.(\d{1,3})$/;
此正则表达式将匹配最后的1到3位数字,并确保它们前面有一个点。
答案 2 :(得分:1)
在perl中使用substr
my $str1 = "10.10.10.46";
$out1 = substr($str1, -2);
现在假设您有两位数以上;
获取最后一个点之后的所有内容
(?<=\.)\d+$
答案 3 :(得分:0)
例如,您可以在perl
:
my $A="10.10.10.46";
my @d = split(/\./, $A);
print $d[-1];
这将始终打印基于.
的最后一个元素作为分隔符。它会根据.
将字符串切片,然后打印后续数组的最后一个元素。
答案 4 :(得分:0)
你想要字符串末尾的所有数字,所以要求它。
($n) = $ip =~ /(\d+)$/;