Как изменить формат даты регулярным выражением?

Есть примеры:

20150701
20200806

Как разделить на:

2015.07.10
2020.08.06

00 последние убрать Прим.ред.: Автор не уточнил, что это значит. Скорее всего, нерелевантно для решения.


Ответы (2 шт):

Автор решения: MaxU

по-моему, в данном случае лучше использовать datetime вместо регулярных выражений:

from datetime import datetime as DT

def convert_dt(dt, to_fmt="%Y.%m.%d", from_fmt="%Y%m%d"):
    return DT.strptime(dt, from_fmt).strftime(to_fmt)

тесты:

In [118]: convert_dt("20150701")
Out[118]: '2015.07.01'

In [119]: convert_dt("20200806")
Out[119]: '2020.08.06'

In [120]: convert_dt("20200806", to_fmt="%d.%m.%Y")
Out[120]: '06.08.2020'

In [121]: convert_dt("2020-08-30 11:12:13", from_fmt="%Y-%m-%d %H:%M:%S", to_fmt="%d.%m.%Y %H:%M")
Out[121]: '30.08.2020 11:12'
→ Ссылка
Автор решения: dIm0n

С помощью регулярных выражений, найденное этим:

^(\d{4})(\d\d)(\d\d)$

заменить этим:

$1.$2.$3

Тест https://regexr.com/5a206

→ Ссылка