You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PowerShell正则表达式提取外部文件中的数字?

提取负载数字的PowerShell解决方案

嘿,我来帮你把这些行里的数字提出来!针对你现在的输出,有两种实用方法,看你需求选:

方法1:只提取负载数字

直接修改正则表达式,加入捕获组精准抓取数字部分,再通过Matches属性提取结果:

(Get-Content -Path .\log.html) | Select-String -Pattern 'load is: (\d+)' | ForEach-Object {
    $_.Matches.Groups[1].Value
}

小解释:

  • 'load is: (\d+)':正则里的(\d+)是捕获组,专门匹配1个或多个数字(\d代表数字,+表示至少出现一次)
  • $_.Matches.Groups[1].Value:Matches是Select-String返回的匹配对象,Groups[1]对应我们定义的第一个捕获组(索引0是整个匹配的完整字符串,索引1才是我们要的数字)

运行后你会得到纯数字输出:

0
5875
6077
6072
5846

方法2:同时提取服务器编号和负载数字

如果需要把服务器编号和对应负载一起保留(方便后续分析),可以扩展正则同时捕获两个组:

(Get-Content -Path .\log.html) | Select-String -Pattern 'server-(\d+) load is: (\d+)' | ForEach-Object {
    [PSCustomObject]@{
        ServerNumber = $_.Matches.Groups[1].Value
        LoadValue    = $_.Matches.Groups[2].Value
    }
}

这个命令会输出结构化的对象,看起来更清晰:

ServerNumber LoadValue
------------ ---------
67           0
68           5875
69           6077
70           6072
71           5846

额外小提示

如果日志里的负载可能包含小数(比如load is: 12.34),只要把正则里的\d+改成\d+\.?\d*,就能同时匹配整数和小数了。

内容的提问来源于stack exchange,提问作者catalin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:38:22