我有一个字符串,其中包含持续时间(以毫秒为单位),我希望得到持续时间。
例如:
$a="Group policy waited for 904 milliseconds for the network subsystem at computer boot."
如何在上面的示例中获得“904”的持续时间?
答案 0 :(得分:0)
一种方法是使用正则表达式提取值。以下工作在您的测试用例中,并使用值
填充毫秒变量$ex = new-object System.Text.RegularExpressions.Regex('(\d+)(.milliseconds)', [System.Text.RegularExpressions.RegexOptions]::Singleline)
$a="Group policy waited for 904 milliseconds for the network subsystem at computer boot."
foreach($match in $ex.Matches($a)){
$milliseconds = $match.Groups[1]
Write-Host $milliseconds
}
答案 1 :(得分:0)
这是一种方法。我在空格上分开并寻找数组中的第5项。
$a="Group policy waited for 904 milliseconds for the network subsystem at computer boot."
$mil = ($a -split " ")[4]
$mil += " milliseconds"
$mil
答案 2 :(得分:0)
我的输入字符串并不总是英文。它可以是其他语言,然后持续时间并不总是在字符串中的同一点。此外,由于字符串可以使用其他语言,因此子字符串“毫秒”可以根据语言进行更改。 可以肯定的是,在这个完整的字符串中,只有一个数值,这就是我想得到的。我发现了这种方式: $ a =“计算机启动时网络子系统的组策略等待904毫秒。” $ is_num_val = $ a -match'^。+([0-9] +)。+ $' $ num_val = $ matches [1]