Переформатировать значение даты и времени с помощью регулярного выражения в текстовом файле

#python #regex #datetime #reformatting

#python #регулярное выражение #дата и время #переформатирование

Вопрос:

Я хочу изменить формат времени в некоторых текстовых строках с помощью регулярного выражения. Как я могу использовать старые значения времени? Мой код до сих пор:

 def file_replace_words(file_in, word_to_replace, replace_with):
    f = open(file_in, "r ")
    data = f.readlines()
    f.seek(0)
    for line in data:
        line = re.sub(word_to_replace, replace_with, line)
        f.write(line)
    f.truncate()
    f.close()

f.file_replace_words(path_putty_log, r"(dd/dd/dd) - dd:dd:dd:ddd", 
                    "my time in format 31.12.1999 11:54:23")
  

Я хочу изменить значения с 29/09/16 — 16:38:09:808 до 29.09.16 16:38:09.

Ответ №1:

Вы можете добавить еще несколько групп захвата в свое регулярное выражение и использовать шаблон замены с соответствующими обратными ссылками.

Использовать

 r'(dd)/(dd)/(dd) - (dd:dd:dd):d{3}'
  |- 1-| |- 2-| |-3 -|   | ----- 4 ---- |
  

и заменить на r'1.2.3 4' .

Смотрите демонстрацию регулярных выражений.

ПРИМЕЧАНИЕ: Если есть более длинные подстроки, похожие на эти метки даты и времени, возможно, вам захочется заключить весь шаблон в границы слов b : r'b(dd)/(dd)/(dd) - (dd:dd:dd):d{3}b' .