regex - 匹配关键字数组中的属性字符串

标签 regex powershell keyword scom

我正在使用SCOM脚本对基于MonitoringObjectName的警报进行排序,
由于存在名称不同的服务器,因此我想将此(MonitoringObjectName)属性字符串与关键字列表进行匹配。
我想知道如何将属性与放置在数组中的关键字匹配

$keywords = @("ABC","DEF","XYZ","GHI")
Get-SCOMAlert | ? ($_.MonitoringObjectName -like "*$keyword*"

寻找想法/提示如何做到这一点

最佳答案

使用如下正则表达式匹配:

$keywords = 'ABC|DEF|XYZ|GHI'
Get-SCOMAlert | ? { $_.MonitoringObjectName -match $keywords }

或者(如果您希望将关键字保留在列表中):
$keywords = 'ABC', 'DEF', 'XYZ', 'GHI'
$re = $keywords -join '|'
Get-SCOMAlert | ? { $_.MonitoringObjectName -match $re }

或在嵌套的Where-Object中进行通配符比较:
$keywords = 'ABC', 'DEF', 'XYZ', 'GHI'
Get-SCOMAlert | ? {
  $name = $_.MonitoringObjectName
  $keywords | ? { $name -like "*$_*" }
}

关于regex - 匹配关键字数组中的属性字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34755490/

相关文章:

powershell - PowerShell 中由 null dsquery 引发的错误处理

Powershell 模块 list "ScriptsToProcess"

c# - sqlconnection 字符串查询不支持关键字

python - 从网页中提取元关键字?

python - 如何检查字符串是否是有效的python标识符?包括关键字检查?

java - 正则表达式 - 从 Java 中的字符串中提取信息

regex - 如何在 F# 中创建从 A 到 Z 的列表

c++ - 标准库中的任何正则表达式语法是否支持 (?(DEFINE) 用于子模式引用?

regex - 如何掌握正则表达式?

azure - 如何使用 powershell 从远程 zip 文件部署函数应用程序