在powershell变量中查找日期

时间:2016-12-07 11:01:25

标签: powershell

我已经解析了文本文件:

$Sel = select-string -pattern "Date=*" -path D:\test_file.txt -List

以下是结果:

D:\test_file.txt:3: <aaa="000000" Date="2016-12-05"> <bbbbb="cccc" dddd="20161209" eeee="2016-12-09" fff="ggggg" hhhh="hhh" aaaa="1" bbbb="100" cccc="100">

我试图在其上运行正则表达式

 $regex = "(19|20)[0-9]{2}[- -.](0[1-9]|1[012])[- -.](0[1-9]|[12][0-9]|3[01])"

再次将其解析为

select-string -pattern $regex -InputObject $Sel

但这不起作用。您是否有任何想法如何在上面的字符串中找到日期?

2 个答案:

答案 0 :(得分:1)

如果日期模式始终采用指定的格式Date="yyyy-MM-dd",则最直接的方法是查找该模式。无需担心1900年和2000年。像这样,

# Test data
$sel = 'D:\test_file.txt:3:< aaa="000000" Date="2016-12-05" >'

# Let's match date that starts with Date= literal
[regex]$rex = 'Date="(\d{4}-\d{2}-\d{2})"'

# Print the result if matched
if($rex.Match($sel).groups.count -eq 2) {
    $rex.Match($sel).groups[1].value
}

答案 1 :(得分:0)

这应该是正确的:

{{1}}