开发者

Extracting specific data from a string with regex and Powershell

开发者 https://www.devze.com 2023-04-05 04:15 出处:网络
I want to extract from this string blocked-process-report process id=\"process435d948\" taskpriority=\"0\" logused=\"0\" waitresource=\"RID: 7:1:1132932:0\" waittime=

I want to extract from this string

blocked-process-report process id="process435d948" taskpriority="0" logused="0" waitresource="RID: 7:1:1132932:0" waittime= "3962166" ownerId="4641198" transactionname="SELECT" lasttranstarted="2011-09-13T17:21:54.950" XDES="0x80c5f060" lockMode="S" schedulerid="4" kpid="18444" status="susp ended" spid="58" sbid="0" ecid="0"

The value that is in bold开发者_如何转开发, but only the value or 58. And this value can be with different values, sometimes 80 or 1000, etc. but always > 50.

How can I do this using regex and posh?


The quick and dirty:

$found = $string -match '.*spid="(\d+)".*'
if ($found) {
    $spid = $matches[1]
}

where $string is your above mentioned string. This would match any string that has spid="somenumberhere", and make the number into a matched group, which you can extract using $matches[1].


Save that as, say $string.

Then do

$string -match 'spid="(\d+)"'

If there is a match, the value you want will be in $matches[1]

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号