读取字符串PERL中的某些值

时间:2014-04-22 01:21:38

标签: perl ip uri port

我想在Perl中读取一个字符串,但我似乎无法正确使用它。字符串是:

udp://10.111.80.95:8081

从这个字符串开始,我只想阅读 ip address 部分:

10.111.80.95

我还想阅读端口部分,其中包括:

8081

因此,我有2个值,我可以读取哪个是ip 地址端口

我怎样才能做到这一点?我需要使用正则表达式吗?但我的正则表达从来没有做到这一点。任何人都可以帮我吗?谢谢。

1 个答案:

答案 0 :(得分:2)

没有必要使用正则表达式来满足这种需求,split就足够了。您可以将字符串拆分为/:,然后第三个字段是IP地址和第四个字段端口号。

#!/usr/bin/perl

use strict;
use warnings;

use feature qw(switch say);

use Data::Dumper;

while (<DATA>) {
    chomp;
    my @field = split /\/|:/;
    print "$field[3] $field[4]\n";
}

__DATA__
udp://10.111.80.95:8081

运行:

$ perl t.pl
10.111.80.95 8081