perl - Perl - 在找到关键字后立即获取值
问题描述
我想获得一个执行以下操作的脚本语法:将下面的输出定义到一个名为 @pc 的变量中
Active connections: 47
server accepts handled requests
101 101 2434
Reading: 0 Writing: 5 Waiting: 42
我想解析这个输出,以便我只得到与“活动连接”相关的值
在这种情况下,预期的返回值将仅为 47。
解决方案
使用此代码段:
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
- 我建议添加一个检查以检测输入字符串没有有趣的数据。
推荐阅读
- python - 如何在使用 Python 下载之前对气候数据进行子集化?
- asp.net - 如何将 ASP.Net 5(核心)授权属性重定向到 401
- python - 如果 len(row) == 2 (python, csv) 添加行
- python-3.x - 使用 Fernet 创建自定义 Django 加密字段
- matlab - 我可以使用带有积分动作和状态反馈的 Acker 函数吗
- javascript - 对从异步函数返回的承诺感到非常困惑
- reactjs - 我无法使用 DRF 和 REACT 从 RESTful API 获取数据
- javascript - Stripe api 中的 stringify 超出了最大调用堆栈大小
- python - ModuleNotFoundError:没有名为“tabpy”的模块
- typo3 - 在 TYPO3 10 中编辑 tx:cart 的订单确认电子邮件模板