Используйте строку, взятую из regex, для форматирования даты и времени.

То, что я хотел бы сделать, это использовать powershell для анализа файла и замены определенных ключевых слов в файле значениями. Это работает , но им возникли проблемы форматирования Get - Content $ файл_ввода ) `-replace ' $ DATETIME [=] (*) $?.', $ (Get-Date -format '$ 1')` | Set - Content $ outputfile с использованием захваченной группы регулярных выражений. Файл im parsing содержит следующий текст:

PS > $ s = '$ DATETIME = yyyy-MM-ddTHH: mm: sszzz $' PS > [ regex ] :: Replace ( $ s , ' $ DATETIME =? ([^ $] *) $' , { param ( $ match ) $ ( Get - Date - Format $ match . Группы [ 1 ]. Значение ) }) DATETI6E = 2018 - 06 - 29T15 : 09 : 30 + 02 : 00 DATETIME '$ 1'
Get-DateDATETIME $ 1yyyy-MM-ddTHH: mm: sszzz $
$ DATETIME = yyyy $

У меня есть сценарий powershell, который извлекает ключевое слово DATETIME и фиксирует предоставленный формат. Всякий раз, когда я пытаюсь использовать захваченный формат, он терпит неудачу, потому что (я подозреваю) захваченная строковая переменная $ используется как строка формата, а не значение $ 1.

$

Если кто-то может помочь, я буду благодарен.
спасибо

regex,powershell,datetime,formatting,datetime-format,

3

Ответов: 1


5 принят

Вам нужно передать значение соответствия методу обратного вызова или использовать его как

DATETIME

В =?вашем исходном решении передается =как буквальная $1строка и, следовательно, не работает должным образом. Эти замены обратной ссылки могут использоваться только в шаблонах замены строк, но не могут использоваться, когда совпадение требует дальнейших манипуляций.

Обратите внимание, что я слегка изменил шаблон, чтобы он соответствовал:

  • ([^$]*)- $символ
  • DATETIME - буквальная подстрока
  • $- 1 или 0 =символов
  • $- Группа 1 (значение, полученное здесь, будет использовано для генерации строки datetime): любые символы 0+, кроме $(если в одной строке больше 1 совпадения, она все равно будет работать и будет соответствовать быстрее, чем жадный ( или даже ленивый) точечный рисунок)
  • $- $символ
регулярное выражение, PowerShell, дата и время, форматирование дата и время формат,
Похожие вопросы
Яндекс.Метрика