我正在使用带有正则表达式的powershell来尝试从“01:42:35”下面的行中提取以下时间。但是我想忽略时间“02:42:35”,但我不确定该怎么做。
2013-07-04 02:42:35警报172.172.19.9 Jul 4 01:42:35 ...
目前我正在使用此时正则表达式:$time_regex = "(\d+):(\d+):(\d+)"
如何使其符合上述规范?
注意:我想要获得的时间不在行的末尾,第二次总是以“Jul 4”格式在其旁边有一个日期,而第一次在它旁边有一个日期格式“2013-07-04”
由于
答案 0 :(得分:1)
$time_regex = "(?<=\w+ \d+ )(\d+):(\d+):(\d+)"
只匹配一个前面有字母数字“word”和数字的时间字符串。
答案 1 :(得分:1)
如果总是在行的末尾使用:
$t = "2013-07-04 02:42:35 Alert 172.172.19.9 Jul 4 01:42:35"
[regex]::match( $t, "(\d+:){2}(\d+)$" ) | select -expa value
评论后编辑:
试试这个:
$time_regex = "(?<= \d+ )(\d+:){2}\d+"