RegEx使用PowerShell

时间:2018-11-01 08:52:50

标签: regex string powershell

想象一下,有500个这样的字符串,且日期不同:

The certificate has expired on 02/05/2014 15:43:01 UTC.

鉴于这是一个字符串,我正在使用powershell。我需要将日期(02/05/2014)作为对象,因此可以使用操作符(-lt -gt)。

这是使用RegEx的唯一方法,在这种情况下-任何人都可以帮助我使用regEx查找前6个数字(每次更改)。

1 个答案:

答案 0 :(得分:2)

>$regexStr = "(?<date>\d{2}\/\d{2}\/\d{4})"
>$testStr = "The certificate has expired on 02/05/2014 15:43:01 UTC."
>$testStr -match $regexStr
# $Matches will contain the regex group called "date"
>$Matches.date
02/05/2014
>$date = Get-Date ($Matches.date)
>$date
Wednesday, February 5, 2014 12:00:00 AM

如果您需要用其他格式解析日期字符串,则可以执行以下操作:

 >$dateObj = [datetime]::ParseExact($Matches.date,”dd/MM/yyyy”,$null)
 >$dateObj.GetType()

  IsPublic IsSerial Name                                     BaseType
  -------- -------- ----                                     --------
  True     True     DateTime                                 System.ValueType

希望有帮助