删除2个正则表达式模式之间的所有字符

时间:2020-03-05 11:45:23

标签: powershell

我有一个充满这样的行的文件:

04:50:03 [SomeText]        04:54:05
04:54:33 [Some other text] 04:54:56
04:56:43 [Another text]    04:57:09
...

我想删除两次之间的所有文本(仅保留一个分号),然后将所需结果输出到另一个如下所示的文件中:

04:50:03;04:54:05
04:54:33;04:54:56
04:56:43;04:57:09
...

这是我用来匹配日期的正则表达式模式:\d{2}:\d{2}:\d{2}

如何使用Powershell做到这一点?

1 个答案:

答案 0 :(得分:5)

由于时间戳记位于每行的开头和结尾,因此请使用^$锚定它们,然后将它们封装在捕获组中并删除其他所有内容:

(Get-Content file.txt) -replace '^(\d\d:\d\d:\d\d).*?(\d\d:\d\d:\d\d)$','$1;$2'