você está aqui: Home  → Arquivo de Mensagens

Expressão regular para extração de endereços de email de um arquivo

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 04 de agosto de 2014

Na manutenção da Dicas-L eu periodicamente preciso remover endereços de email que não mais existem. Geralmente eu utilizo os arquivos de erro do meu servidor de mails para obter estes endereços. Não é muito high-tech, sei que existem soluções melhores, mas para mim funciona.

Para extrair os endereços eletrônicos dos arquivos, eu utilizo a seguinte expressão regular com grep:

  grep -i -o '[A-Z0-9._%+-]\+@[A-Z0-9.-]\+\.[A-Z]\{2,4\}' arquivo | sort -u > listaemailsinvalidos.txt

Em seguida, para remover os endereços inválidos da lista, eu uso o seguinte comando:

  fgrep -v -f listaemailsinvalidos.txt listaassinantes.txt > novalista.txt

Importante, para esta tarefa use o fgrep que é muito mais rápido, praticamente instantâneo. É claro que com o grep também funciona, mas demora muuuuuuuiiiitoooo.

Muito simples e funciona maravilhosamente bem. A dica foi copiada do portal StackOverflow.

Para aprender mais sobre expressões regulares, não deixe de ler o magnífico livro Expressões Regulares - Uma Abordagem Divertida, de autoria de Aurelio Marinho Jargas.

Título: Expressões Regulares - Uma abordagem divertida
Autor: Aurelio Marinho Jargas (site, blog, twitter, facebook)
Editora: Novatec
Edição: 4ª
Ano: 2012
Páginas: 224
Formato: 16×23 cm
Idioma: Português
ISBN: 978-85-7522-337-6
Lançamento: 7 de novembro de 2012
Preço: R$ 49,00 (onde comprar)
Testemunhos: Leia a opinião de quem já comprou as edições anteriores

Resenha

As Expressões Regulares podem ser utilizadas em editores de texto, planilhas, bancos de dados e linguagens de programação, em sistemas Unix, Linux, Windows e Mac. Qualquer usuário de computador pode usufruir dos seus benefícios. Profissionais que manipulam texto e dados economizarão horas de serviço braçal: escritores, revisores, tradutores, programadores e administradores de sistema.

Em uma abordagem incomum de encontrar em livros técnicos, as explicações didáticas e divertidas tornam prazerosa a leitura de um tema tão árido e abstrato. É uma conversa entre amigos, partindo do básico até chegar aos conceitos avançados. Esta obra revela aos poucos o poder das expressões e o leitor irá saborear o assunto descobrindo seus segredos descontraidamente.

Esta 4ª edição, além de correções e atualizações, traz tópicos novos que ensinam como utilizar as expressões regulares nas fórmulas das planilhas do Google Docs e OpenOffice/LibreOffice, no servidor web Apache (e seu temido mod_rewrite), e no comando find do UNIX. Foram reescritos os tópicos sobre as linguagens de programação JavaScript e Python, agora trazendo uma referência completa, recheada de exemplos, tratando inclusive de assuntos avançados como substituição usando funções e grupos nomeados.

Saiba mais em www.piazinho.com.br.

Novidades da 4ª edição

Planilhas do Google Docs (novo)

Você já deve conhecer as planilhas do Google Docs (agora chamado de Google Drive). Mas você sabia que pode usar expressões regulares para fazer pesquisas e substituições no conteúdo das células? É muito prático, o livro te ensinará os detalhes. Melhor ainda, você também aprenderá como turbinar suas fórmulas com as três funções novas que o Google criou especificamente para usar com as expressões: REGEXMATCH, REGEXREPLACE e REGEXEXTRACT.

Planilhas do OpenOffice/LibreOffice (novo)

Você aprenderá como usar as expressões regulares no Calc, em todos os lugares onde elas são aceitas: no painel Localizar e substituir, nos filtros e em várias funções usadas em fórmulas. São ao todo 19 funções que suportam as expressões, entre elas SUMIF, COUNTIF, MATCH e LOOKUP.

Servidor web Apache (novo)

Já teve pesadelos com o temido mod_rewrite? Eu também. Aprenda a fazer expressões certeiras, evitando pegadinhas com PATH e retrovisores. Mas este módulo é apenas um pedaço de um total de 28 diretivas (!) do Apache que suportam expressões regulares, entre elas: If, RedirectMatch, FilesMatch, LocationMatch e a inusitada Substitute, que "faz um sed" no conteúdo das páginas do servidor. São ao todo 10 páginas do livro dedicadas a desvendar os segredos das expressões no Apache, didaticamente.

Comando find - UNIX (novo)

Use expressões regulares no comando find para encontrar rapidamente arquivos e pastas pelo nome. Mas não ache que será fácil! Além de algumas pegadinhas com a ordem das opções, e diferenças entre as versões GNU e BSD, existem sete (!) tipos de expressões regulares para você escolher. Para que simplificar, não é mesmo? :)

Python (reescrito)

Python é minha linguagem preferida e agora ela teve o destaque que merece no livro: este tópico foi reescrito e pulou de 2.5 para 9 páginas. Agora é uma referência completa, recheada de exemplos, tratando inclusive de assuntos avançados como flags, textos multilinha, grupos nomeados, expressões comentadas e substituição usando função. É como um minilivro dentro do livro.

JavaScript (reescrito)

JavaScript disputa com Shell Script o segundo lugar entre minhas linguagens preferidas, então também dei-lhe um tratamento especial nesta edição. O tópico foi reescrito e expandido, agora explicando em detalhes como usar o objeto RegExp e extrair dados do casamento. Também há exemplos didáticos para tópicos avançados como: textos multilinha e substituição usando função.

Editor de textos do Google Docs (removido)

Em 2010 o editor de textos do Google foi reformulado e infelizmente o suporte às expressões regulares foi removido.

10 anos de Expressões Regulares (removido)

A edição anterior era comemorativa e trazia um texto longo (13 páginas) que contava minha história de uma década com as expressões e mostrava os bastidores da escrita do livro. Este texto foi removido do livro e colocado aqui no site.

SYN FLOOD joke

Want to hear a SYN FLOOD joke?
Want to hear a SYN FLOOD joke?
Want to hear a SYN FLOOD joke?
Want to hear a SYN FLOOD joke?
Want to hear a SYN FLOOD joke?

Fonte: List of network jokes



Veja a relação completa dos artigos de Rubens Queiroz de Almeida

 

 

Opinião dos Leitores

Cesar Brod
04 Ago 2014, 15:00
Rubens! Incrível! Eu estava mesmo pesquisando uma forma de fazer isso!
*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