【问题标题】:Extract string from variable passed in parameter从传入参数的变量中提取字符串
【发布时间】: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 telnet


    【解决方案1】:

    您可以使用替换来删除所有内容,直到破折号:

    my $string = '90-0/2/2';
    $string = s/^.+-//;
    

    如果你想更具体,你可以只删除数字:

    $string =~ s/^[0-9]+-//;
    
    • ^ 匹配字符串的开头。
    • . 匹配任何内容(换行符除外)。
    • + 表示之前的事情应该至少重复一次。

    【讨论】:

      【解决方案2】:

      你可以使用 Perl 的 split 子程序。

      my $ARG1 = '90-0/2/2';
      my $required_part = (split(/-/,$ARG1))[1];
      

      现在,$required_pa​​rt 包含 0/2/2

      【讨论】:

      • 谢谢Pradeep,这正是我要找的
      【解决方案3】:

      您可以捕获您确实想要的部分,而不是删除您不想要的部分

      my ($param) = $ARGV[1] =~ /-(.+)/
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-27
        • 1970-01-01
        • 2019-06-03
        • 2022-01-06
        • 2019-07-22
        • 2013-08-28
        • 2020-12-27
        相关资源
        最近更新 更多