【发布时间】:2015-12-08 01:17:00
【问题描述】:
我的 Perl 脚本需要 Web 应用程序提供的 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 请有人帮忙!!!!!!
【问题讨论】:
我的 Perl 脚本需要 Web 应用程序提供的 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 请有人帮忙!!!!!!
【问题讨论】:
您可以使用替换来删除所有内容,直到破折号:
my $string = '90-0/2/2';
$string = s/^.+-//;
如果你想更具体,你可以只删除数字:
$string =~ s/^[0-9]+-//;
^ 匹配字符串的开头。. 匹配任何内容(换行符除外)。+ 表示之前的事情应该至少重复一次。【讨论】:
你可以使用 Perl 的 split 子程序。
my $ARG1 = '90-0/2/2';
my $required_part = (split(/-/,$ARG1))[1];
现在,$required_part 包含 0/2/2
【讨论】:
您可以捕获您确实想要的部分,而不是删除您不想要的部分
my ($param) = $ARGV[1] =~ /-(.+)/
【讨论】: