У нас есть пользователи, отвечающие по электронной почте, и нам нужно получить дату, указанную в таблице.Regex для извлечения значения из таблицы
На данный момент я сделал следующий код, чтобы сделать это для нас:
$temp = ($Mail.Body.Text -creplace '(?m)^\s*\r?\n' -split "User name`r`n`tLogon name`r`n`tEnd date`r`n`tNew end date")[1]
(($temp -split "`r`n`t")[3] -split "`r`n")[0]
Как вы можете видеть, это довольно долго и очень полагаясь на -split
. Есть ли более простой способ получить дату? С Select-String
или Regex
что ли?
Формат таблицы в электронном письме всегда совпадает, так как пользователям необходимо заполнить дату в таблице HTML. Поэтому нам нужно уметь читать эту таблицу. В приведенном ниже примере результатом будет 01/08/2016
.
Пример такой электронной почты:
Date added below
From: GBR Service Desk
Sent: Wendesday 29 juni 2016 7:00
To: Bond, James (London) GBR
Subject: REMINDER Expiring user:
Importance: High
Dear James
This is a reminder e-mail to inform you that the following Windows user account will expire soon:
User name
Logon name
End date
New end date
Smith, Jobn (Manchester) GBR
jent
01/07/2016
01/08/2016
Because you are registered as the manager of this user, we would like to ask you to verify if this account is still nee
ded after its end date. More text...
Yours sincerely
Спасибо за вашу помощь.
Это действительно отличный совет! Спасибо, Матиас :) Но иногда они что-то там набирают, например, «8 августа». В этом случае мне нужно это сделать. – DarkLite1
@ DarkLite1: И сколько форматов/человеческих языков вы собираетесь поддерживать? Добавьте это в вопрос. –
Я согласен, отмечая это как решение. – DarkLite1