Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Transformando um formato de data para outro usando expressões regulares com Python

Sejam os seguintes formatos de datas:

042555

04/25/1955

Abril 25, 1955

Como utilizar regex para transformar um formato de data em cada um dos outros (seriam 6 transformações).

Por exemplo:

Entrada: 042555
Saída: 04/25/1955 e  Abril 25, 1955

Imagino que devamos usar o método sub do módulo re:

Alguma ideia?

1 resposta
solução!

Oi Edson, tudo bem?

A primeira coisa quando trabalhamos com regex, é buscarmos analisar padrões, certo?! Neste exemplo que você nos mostra as datas são identificadas em pares de números onde cada conjunto significa algo. Exemplo:

Entrada: 042555

  • 04 -> mês
  • 25 -> dia
  • 55 -> ano

Para substituir no formato que você precisa, poderá fazer algo como:

import re
data = '042555'
re.sub(r'(\d{2})(\d{2})(\d{2})', r'\1/\2/19\3', data)

Observe o seguinte, o primeiro parâmetro é o nosso padrão, o segundo parâmetro é a nossa string de substituição, e o terceiro parâmetro é a string alvo. Na string de substituição, observe que usamos uma regex também, só que com os resultados do nosso padrão, por isso do: \1 \2 \3, ou seja, pegue o primeiro resultado do \d{2}, depois, o segundo resultado de \d{2} e assim por diante. Esta é a base para fazer o que você precisa.

Qualquer dúvida, fique a vontade para perguntar, estou a disposição.