想象一下,有500个这样的字符串,且日期不同:
The certificate has expired on 02/05/2014 15:43:01 UTC.
鉴于这是一个字符串,我正在使用powershell。我需要将日期(02/05/2014)作为对象,因此可以使用操作符(-lt -gt)。
这是使用RegEx的唯一方法,在这种情况下-任何人都可以帮助我使用regEx查找前6个数字(每次更改)。
答案 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
希望有帮助