Я пытаюсь найти самый быстрый / эффективный способ запуска множества удалений регулярных выражений для массива.
Мой массив $hosts
содержит десятки тысяч отдельных элементов в формате домена.Например:
test.domain.xyz
domain.xyz
thing.com
anotherdomain.net
My $local_regex
массив содержит ~ 1000 отдельных регулярных выражений в многострочном формате.Например:
В настоящее время я пытаюсь исключить любые совпадения регулярных выражений вследующим образом, но это ОЧЕНЬ медленно с большим массивом и множеством подходящих регулярных выражений:
Function Regex-Remove
{
Param
(
[Parameter(Mandatory=$true)]
$local_regex,
[Parameter(Mandatory=$true)]
$hosts
)
# Loop through each regex and select only non-matching items
foreach($regex in $local_regex)
{
# Multi line, case insensitive
$regex = "(?im)$regex"
# Select hosts that do not match regex
$hosts = $hosts -notmatch $regex
}
return $hosts
}
Есть ли лучший способ сделать это?