鉴于串指定字符串
RAM Statistics: 5954/8174 743=InUse 746=Peak
我需要一个正则表达式(或三个)以提取743
,所述746
,理想的5954/8174
因此每个可以分配给一个特定的变量之前获取数。例如,我认为这是LookBehind的用途,但实际上我得到了一个RegEx来“获取空格和=峰值之间的数字”。
我已经试过
$string = 'RAM Statistics: 5954/ 8174 743=InUse 746=Peak'
$regexPeak = '(?<=)(.#)(?=\=Peak)'
$string -match $regexPeak > $null
$peak = $matches[0]
Write-Host "$peak"
但是,这回什么。
UPDATE: 每约书亚我已经试过
$string = 'RAM Statistics: 5954/ 8174 743=InUse 746=Peak'
$regexPeak = '(\d+)/(\d+) (\d+)=\D+(\d+)=peak/gi'
$string -match $regexPeak
$peak = $matches[0]
Write-Host "$peak!"
而且两者$比赛[0]和[1]返回=峰值之前的一切。所以
Statistics: 5954/ 8174 743=InUse 746!
也许'$串| select-string -pattern'\ d +(?:\ s */\ s * \ d +)?' -AllMatches | Foreach {$ _。Matches} | ForEach-Object {$ _。Value}'会做,如果你只需要一个可选的'/'+数字的数字。 –