我正在尝试从文本文件中提取出一个日期。以下是该内容:
我需要提取server date/time之后的日期/时间。我已经写了这个正则表达式:存储管理器 命令行管理员界面 - 版本7,发布1,级别1.4 版权所有1990, 2015公司和其他人。版权所有。
与服务器TSERVER建立的会话:Windows Server版本7,发布1,级别5.200 服务器日期/时间:11/22/2016 15:30:00 最后访问:11/22/2016 15:25:00
ANS8000I服务器命令。
/([0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4} [0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2})/
这个在regex101上可以完美地运行。请参见https://regex101.com/r/MB7yB4/1上的示例。 然而,在Powershell中,它的反应是不同的。
$var -match "([0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4} [0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2})"
提供
服务器日期/时间:2016年11月22日 16:30:00 最后访问时间:2016年11月22日 15:37:19
和
$var -match "([0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4} [0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2})"
没有任何返回结果。
我不确定为什么匹配结果不一致。
谢谢帮助!
if($var -match '[0-9]{1,2}/[0-9]{1,2}/[0-9]{4} [0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}') { $Matches[0] }
- Wiktor Stribiżew-match
示例命令与第一个完全相同。请编辑它以显示真正未产生任何结果的变化(或者只需删除第二个命令)。 - mklement0