Как используя регулярные выражения найти в тексте даты в заданном формате и заменить их на другой формат?
Надо используя регулярные выражения найти в тексте все даты в формате 2016-11-23 и заменяет их на формат 23.11.16.
Было:
Мы изучали этот 2016-11-23
Стало:
Мы изучали этот 23.11.16
Вот код, который получился у меня:
import re
input_filename = "../progr.txt"
result_filename = "../result.txt"
input_file = open(input_filename, mode = 'r', encoding = "utf-8")
resultfile = open(result_filename, mode = 'w', encoding = "utf-8")
mytext = input_file.read()
results = re.sub(r"[\d-]", r"[\d.]", mytext)
print(results)
Дальше, не могу понять, как поменять даты.
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Используйте захватывающие группы (выражения в круглых скобках):
s = "Мы изучали этот 2016-11-23."
results = re.sub(r"\d{2}(\d{2})-(\d{2})-(\d{2})", r"\3.\2.\1", s)
# capturing groups ----> ^^^^^ ^^^^^ ^^^^^
результат:
In [6]: results
Out[6]: 'Мы изучали этот 23.11.16.'