如何从数组PowerShell中提取字符串

时间:2017-02-08 15:08:15

标签: powershell

我需要从以下$ parse中提取字符串。

 $parse = select-string -path .\xxx.log "Error" -allmatches –simplematch -context 1 

字符串示例包含:

 Start : Error : billing 1150116682 not found - exit. Source : /mnt/xxx/roo/foo/aaa/115565841_yyyyy.pdf
=================================================================================================================================================== 

我只需要提取源:/ mnt / xxx / roo / foo / aaa / 115565841_yyyyy

我该怎么办?

THX

2 个答案:

答案 0 :(得分:0)

您可以像这样进行字符串拆分:

$array = $parse.split(':') $lastItem = $array[-1]

然后从列表中获取所需的项目。假设你知道你需要什么。

答案 1 :(得分:0)

不要使用-SimpleMatch因为这会阻止使用正则表达式,我们可以使用它来提取所需的子字符串。这是一个例子:

$s = "Start : Error : billing 1150116682 not found - exit. Source : /mnt/xxx/roo/foo/aaa/115565841_yyyyy.pdf"
$s | Select-String "Error : .* Source : (.*)" | ForEach-Object {
  $_.Matches[0].Groups[1].Value -replace '\.pdf$', ''
}

以上输出字符串/mnt/xxx/roo/foo/aaa/115565841_yyyyy