De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

Inversão de datas com expressões regulares

Colaboração: Julio Cezar Neves

Data de Publicação: 13 de julho de 2018

Um par de parênteses define um grupo em uma Expressão Regular, mas também salva o texto que casou com o trecho dentro do grupo. Em uma Expressão Regular, você pode definir grupos e posteriormente resgatar os textos de até 9 deles, usando uma contrabarra seguido da ordem do grupo na Expressão Regular.

Assim você recupera o texto do grupo mais à esquerda com \1, o seguinte será \2 e assim sucessivamente até \9. \12 é o conteúdo do primeiro grupo com o algarismo 2 colado no texto.

Vamos usar o sed para, recebida uma data no formato DD-MM-AAAA, invertê-la:

 $ sed -r 's/([0-9]{2})-([0-9]{2})-([0-9]{4})/\3-\2-\1/' <<< $(date +%d-%m-%Y)
 2018-07-12 

Neste exemplo o primeiro [0-9]{2} casa com o dia, o segundo com o mês e o [0-9]{4} casa com o ano e cada um deles cria um grupo. A magia da solução foi simplesmente listar os grupos na ordem inversa.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Julio Cezar Neves