Я пытаюсь выяснить, почему приведенный ниже код не будет совпадать, когда дело обстоит иначе. Причина для 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}