我想從日誌文件中提取一些文本,並遇到問題。 示例文本我的工作是:日誌文件PowerShell正則表達式捕獲太多
ahksjhadjsadhsah
sakdsjakdjks
ksajdksaj
REF=35464
sadsad
213213
213
2
13
我需要提取值「35464」(REF號碼)。我對正則表達式的瞭解有限,但認爲'REF =([0-9] +)'會這樣做。
現在我不知道我如何最好應該做的閱讀這個文件,所以我已經嘗試了幾種方法:
select-string -path e:\powershell\log.txt -pattern 'REF=([0-9]+)' | % { $_.Matches } | % { $_.Value }
這給了我「REF = 35464」 - 這我不(理解爲什麼包含REF),因爲我認爲'捕獲'只是()的部分?
我也試過:
$data=Get-Content e:\powershell\log.txt
$data -match 'REF=([0-9]+)'
$Matches
但是$匹配是空的。
我還嘗試了類似的方法除上述之外,但一行行,例如:
foreach ($line in $data)
{
$line -match 'REF=([0-9]+)'
}
我要麼得到沒有匹配時,或完全匹配(包括REF =部分)。我也嘗試過組(即'(REF =)([0-9] +)'),我無法得到我所需要的。
我該如何閱讀文件?我的正則表達式有什麼問題?
我只是需要這個提取的值作爲一個可用的變量。
嘗試' '(<= REF =?)[0-9] +''如果你只需要號碼。 –