我正在使用以下代码段在文本文件中搜索多个系统名称,并将它们保存在数组中。
现在,我需要保存比赛的位置,但总是只获得第一个比赛的位置。
$pattern_sysname = '(?<=Computername).+?($)'
Get-Content $path | Foreach {if ([Regex]::IsMatch($_, $pattern_sysname)) {
$arr_sysname += [Regex]::Match($_, $pattern_sysname)
}
}
$arr_sysname.index
我需要每场比赛的位置。
答案 0 :(得分:0)
观看此演示:
#demo data
@'
Computername12
This is Computername1
ComputernameABC
NotMatched
'@ | out-file regex.test
$pattern_sysname = '(?<=Computername).+?$'
Select-String -Path regex.test -Pattern $pattern_sysname -AllMatches |
select LineNumber,@{N='OffsetInLine';E={$_.Matches[0].Index}}
结果:
LineNumber OffsetInLine
---------- ------------
1 12
2 20
3 12