首页 > 解决方案 > Perl - 在找到关键字后立即获取值

问题描述

我想获得一个执行以下操作的脚本语法:将下面的输出定义到一个名为 @pc 的变量中

Active connections: 47
server accepts handled requests
 101 101 2434
Reading: 0 Writing: 5 Waiting: 42

我想解析这个输出,以便我只得到与“活动连接”相关的值

在这种情况下,预期的返回值将仅为 47。

标签: perl

解决方案


使用此代码段:

my ($connections) = $str =~ /Active connections:\s*(\d+).*/;

变量$connections将包含您的答案。

您还可以一次提取多个变量,如下所示:

my ($connections, $reading, $writing) = $str =~ /Active connections:\s*(\d+).*Reading:\s*(\d+).*Writing:\s*(\d+).*/s;

在这种情况下,变量$connections, $reading,$writing将立即被提取。

如果输入字符串中没有匹配的模式,提取的变量将是undef- 我建议添加一个检查以检测输入字符串没有有趣的数据。


推荐阅读