PowerShell не жадный заменить до шаблона

У меня есть файл с несколькими строками, как показано в примере ниже, но мне нужно, чтобы символы, указанные в шаблоне, присутствовали в выходных данных, другими словами, не жадное совпадение.

Мне нужен способ удалить первую часть строки и получить строку, которая начинается с "07" или "08" и всего в строке до конца строки.

Пример:

  • Ввод: "ВЫБЕРИТЕ TZ_OFFSET (SESSIONTIMEZONE) ИЗ ДВОЙНОГО 07.16.0162 (B0375, U0847)"
    • выход: 16.07.0162 (B0375, U0207)
  • Вход: "ВЫБЕРИТЕ TZ_OFFSET (SESSIONTIMEZONE) ИЗ ДВОЙНОГО 08.15.0162 (B03075, U07)"
    • выход: 15.08.0162 (B08075, U07)

2 ответа

Это должно работать:

$str = 'SELECT TZ_OFFSET (SESSIONTIMEZONE) FROM DUAL07.16.0162 (B0375, U0847)' 
$str -replace '^.*?DUAL(.*)$','$1'
New-Variable -Name file -Value "c:\abc.txt" #This file contains the line that needs to be edited
(Get-Content -Path $file) -replace '^.*?DUAL(.*)$','$1'|set-content $file
Другие вопросы по тегам