我的Perl脚本需要ARG 0和ARG 1,它们是由网络应用程序提供的./telnet 10.10.10.10 78-0 / 1/1
我想从ARG1仅取0/1/1而不是78-0 / 1/1 并且每次这些值在其他例子上都不同:
./ telnet 10.10.10.10 90-0 / 2/2所以我只需要0/2/2 有人请帮助!!!!!
答案 0 :(得分:4)
您可以使用替换删除短划线上的所有内容:
my $string = '90-0/2/2';
$string = s/^.+-//;
如果您想更具体,可以只删除数字:
$string =~ s/^[0-9]+-//;
^
匹配字符串的开头。.
匹配任何内容(换行符除外)。+
表示先前的事情应至少重复一次。答案 1 :(得分:0)
您可以使用Perl的拆分子程序。
my $ARG1 = '90-0/2/2';
my $required_part = (split(/-/,$ARG1))[1];
现在,$ required_part包含 0/2/2
答案 2 :(得分:0)
您可以捕捉 想要的
部分,而不是移除您不想要的部分。my ($param) = $ARGV[1] =~ /-(.+)/