Удалить все символы между 2 шаблонами регулярных выражений - PullRequest
0 голосов
/ 05 марта 2020

У меня есть файл, полный строк, таких как:

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 Ответ

5 голосов
/ 05 марта 2020

Поскольку ваши временные метки находятся в начале и конце каждой строки, используйте ^ и $, чтобы закрепить их, затем заключить их в группу захвата и удалить все остальное:

(Get-Content file.txt) -replace '^(\d\d:\d\d:\d\d).*?(\d\d:\d\d:\d\d)$','$1;$2'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...