Вы запросили регулярное выражение, но ваш пример уже показывает ловушку в виде часового пояса!
Простое использование только одного регулярного выражения может привести к неправильному дню, когда смещение часового пояса переместит его в полночь. Вместо этого я бы рекомендовал вместо этого использовать [DateTime]::TryParseExact
, а затем использовать формат строки даты, чтобы получить нужную форму:
$Line = "Date: Wed Oct 31 12:55:00 2018 -0500"
[DateTime] $Date = New-Object DateTime
$Success = [DateTime]::TryParseExact($Line,
"'Date: 'ddd MMM dd HH':'mm':'ss yyyy zzz",
[System.Globalization.CultureInfo]::InvariantCulture,
[System.Globalization.DateTimeStyles]::None,
[ref] $Date)
if ($Success) {
$Date.ToString("ddd MMM dd")
}
Приведенный выше пример распечатывает
Wed Oct 31