我想在Perl中读取一个字符串,但我似乎无法正确使用它。字符串是:
udp://10.111.80.95:8081
从这个字符串开始,我只想阅读 ip address 部分:
10.111.80.95
我还想阅读端口部分,其中包括:
8081
因此,我有2个值,我可以读取哪个是ip 地址和端口。
我怎样才能做到这一点?我需要使用正则表达式吗?但我的正则表达从来没有做到这一点。任何人都可以帮我吗?谢谢。
答案 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