você está aqui: Home  → Arquivo de Mensagens

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.

Lançamento: Curso de Expressões Regulares, com o Prof. Julio Neves

O Prof. Julio Neves em parceria com a Dicas-L, lançou o curso Expressões Regulares.

Como oferta especial de lançamento para os leitores da Dicas-L, o curso está sendo oferecido, até o dia 17 de julho, ao preço promocional de R$29,70. Após esta data será praticado o preço normal, de R$ 97,00.

Como de hábito em nossos cursos, os alunos terão apoio integral dos instrutores para sanar qualquer dúvida. Adicionalmente, o acesso ao material é permanente, enquanto a Dicas-L existir você pode acessar o material sempre que precisar.

Saiba mais sobre o curso de Expressões Regulares e faça sua inscrição

About Image

Aproveitando, a terceira edição do curso Programação Shell Linux está prevista para o mês de agosto.



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

 

 

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script