Situação: Estava com uma lista de inserts (para um banco SQLITE3), mas os campos de data estavam sem aspas e isso gerava erros na hora de executar os comandos.
Para resolver o problema sem ter que gastar muito tempo ou esforço, resolvi utilizar regex e o Notepad++.
Antes de mostrar a sintaxe, é importante ressaltar que todas as datas estavam no mesmo padrão:
- aaaa-mm-dd hh:MM:ss.ffffff
Exemplo:
- 2018-12-31 23:59:30.475863
Isso tornou o processo todo bem simples.
(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{6})
A sintaxe acima significa:
- (: Inicio da captura de um grupo
- \d{4}: conjunto com 4 caracteres numéricos (ano)
- –: caractere hífen
- \d{2}: conjunto com 2 caracteres numéricos (mês)
- –: caractere hífen
- \d{2}: conjunto com 2 caracteres numéricos (dia)
- : caractere espaço (também poderia ser \s{1}, mas como é apenas 1 espaço, não tem necessidade)
- \d{2}: conjunto com 2 caracteres numéricos (horas)
- :: caractere dois pontos
- \d{2}: conjunto com 2 caracteres numéricos (minutos)
- :: caractere dois pontos
- \d{2}: conjunto com 2 caracteres numéricos (segundos)
- .: caractere ponto
- \d{6}: conjunto com 6 caracteres numéricos (milisegundos)
- ): Final da captura de um grupo
A sintaxe acima deve ser colocada no campo “Find what” (ou Procurar por) da tela de substituição de texto do Notepad++.
No campo “Replace with” (Substituir por), insira a sintaxe abaixo:
'\1'
Bem simples, certo? Esta sintaxe significa que o conteúdo do primeiro grupo que foi capturado anteriormente (o que estava entre parenteses) vai ser escrito entre aspas simples.
Clique no botão “Replace All” (Substituir todos) e pronto. Todas as datas (que estiverem neste formato) serão atualizadas e colocadas entre aspas simples.
Para quem não está acostumado com regex, quando digo que “o conteúdo do primeiro grupo…” é por que você pode, em apenas uma sintaxe, capturar diversos grupos. Basta utilizar várias sintaxes entre parenteses, mas não vou entrar neste nível de detalhes, pois não é o foco do post. (Se precisar, só avisar que eu faço um novo post.)
Espero ter ajudado!
Latest posts by Breno RdV (see all)
- O que é Metaclass e como ela funciona. (#python #dev #metaclass) - janeiro 11, 2023
- Entenda a mágica dos Generators. (#python, #dev, #generator, #iterator) - dezembro 28, 2022
- Ordenando um DataFrame por múltiplas colunas. (#python #pandas #jupyter #dev #data) - agosto 3, 2022