[Resolvido] Usando regex para colocar datas entre aspas. (Regex/Notepad++)
Overview
Você já se deparou com aquele monte de dados para inserir no banco e percebeu que as datas estavam todas sem aspas? Neste post light-hearted, mas com uma pegada séria, vou mostrar como resolver esse problema de forma rápida e descomplicada usando regex e o Notepad++. Prepare-se para economizar um precioso tempo sem sacrificar a precisão!
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!