从参数中传递的变量中提取字符串

时间:2015-09-11 12:59:47

标签: perl telnet

我的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 有人请帮助!!!!!

3 个答案:

答案 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_pa​​rt包含 0/2/2

答案 2 :(得分:0)

您可以捕捉 想要的

部分,而不是移除您不想要的部分。
my ($param) = $ARGV[1] =~ /-(.+)/