#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'
.