você está aqui: Home  → Arquivo de Mensagens Programe sua mente para aprender inglês - ebook gratuito

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.



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