获取内容所需的PowerShell Regex帮助

时间:2019-01-14 19:15:21

标签: regex powershell

我使用Get-Content从txt文件中提取文本。 其中一些示例为:

projectName - url (Automation Complete)
otherProject - url (Task Complete)

我正在尝试存储每个项目完成一次自动化或任务完成并打印输出的次数。

这是我到目前为止所拥有的:

$serviceProjClosedTasksCount = (Select-String -InputObject $wsr -Pattern "(Task Complete)","Service [Pp]roj" -AllMatches).Matches.Count

1 个答案:

答案 0 :(得分:1)

假设您不想对每个项目分别计算“自动化完成”和“任务完成”,我可能会这样做:

$wsr -match '\((Automation|Task) Complete\)' |
    Group-Object { ($_ -split '\s+-\s+')[0] } -NoElement |
    Select-Object Name, Count

如果您希望每个项目分别实现自动化和任务,则可能会执行以下操作:

$wsr -match '\((Automation|Task) Complete\)' |
    Group-Object { $_ -replace '^(.*?) - .*\((Automation|Task) Complete\).*', '$1 $2' } -NoElement |
    Select-Object Name, Count