我试图弄清楚为什么下面的代码在案例不同时不会匹配。第3 /第4行的原因是将我的日志过滤器组合成一个表达式,同时仍然允许使用逗号。
我尝试了很多不同的方式,但案例仍然很重要。
$combined_log = {"A", "B", "Error"}
$Log_Filters = "ERROR", "failed", "Note", "Warning"
#[regex]$Log_Filter_regex = '(?i)^(' + (($Log_Filters|foreach{[regex]::escape($_) -replace ",","\,"}) –join "|") + ')$'
[regex]$Log_Filter_regex = (($Log_Filters|foreach {[regex]::escape($_) -replace ",","\,"}) –join "|")
$combined_log | where {$_ -imatch $Log_Filter_regex}