gpt4 book ai didi

regex - 如何使用Powershell正则表达式从事件日志消息中获取数字?

转载 作者:行者123 更新时间:2023-12-03 00:34:11 25 4
gpt4 key购买 nike

我正在使用powershell为以下示例获取事件日志消息:

Disk 3 has crossed a capacity utilization threshold and used 19683350528 bytes. When the threshold was crossed, the disk had 87690831360 bytes of remaining capacity.



我需要获取磁盘号3,阈值字节19683350528和剩余字节87690831360。

我知道可以使用 select-string -pattern。但是不知道要获取这些值的正则表达式。
Function Get-LogSensemessage
{
Param
(
$LogMessage
)

$DiskNumber= $LogMessage | select-string -pattern <Regular expression>
$Threshold = $LogMessage | select-string -pattern <Regular expression>
$RemainingCapacity = $LogMessage | select-string -pattern <Regular expression>

[pscustomobject]@{
DiskNumber = $disknumber
Threshold = $Threshold
RemainingCapacity = $RemainingCapacity

}

}

有人可以帮我用正则表达式获取详细信息吗?

最佳答案

根据注释,您可以使用正则表达式模式\d+匹配字符串中任何数字。通过使用-AllMatches上的Select-String开关,我们可以在一击中获得所有匹配项。

我建议您将其合并到您的函数中:

Function Get-LogSensemessage
{
Param(
[string]$LogMessage
)

$LogValues = ($LogMessage | Select-String -Pattern '\d+' -AllMatches).Matches.Value

[pscustomobject]@{
DiskNumber = $LogValues[0]
Threshold = $LogValues[1]
RemainingCapacity = $LogValues[2]
}
}
$LogValues变成一个字符串数组,因此我们使用从 [0]开始的数组索引来获取每个匹配的值。

关于regex - 如何使用Powershell正则表达式从事件日志消息中获取数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48688152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com