Archive for April, 2006

O poder das expressões regulares

Friday, April 7th, 2006

Desenvolvedores constantemente suprem suas necessidades com o uso de expressões regulares. O que poucos sabem é que os benefícios deste recurso, presente em grande parte dos editores de texto, são incalculáveis e que estão ao alcance de todos.

Dentro de uma empresa é possível aumentar significativamente a produtividade em diversas áreas, sendo que podemos evitar trabalhos manuais que só servem para desperdiçar tempo e dinheiro. Abaixo vou colocar um exemplo simples que deve servir para despertar a curiosidade e incentivar o estudo. Sem esses dois ingredientes não é possível avançarmos muito nesse tema.

Imagine o seguinte caso. Uma funcionária do departamento de marketing recebeu um arquivo enorme que contém uma lista de usuários com seus respectivos dados pessoais. Esse arquivo será usado para enviar para todos nele presentes uma carta de agradecimento.

A primeira coisa que ela precisa fazer antes de usar esse arquivo é dar uma limpada para evitar gastos com envios para endereços incompletos, entre outros possíveis problemas. Como o envio será feito pelo correio, uma boa coisa a se fazer é achar todos os usuários que estão com CEP e no formato correto. Então ela abre seu editor de textos preferido que tem suporte a expressão regular e faz a seguinte busca: [0-9]{5}-?[0-9]{3}

Para os que nunca usaram, olhar para o que eu escrevi acima assusta um pouco, mas depois da tradução fica tudo mais fácil. Ela quer dizer “ache no texto uma seqüência de 5 digitos seguidos ou não de um hífen, seguido de mais 3 digitos”, ou seja, ache tudo que for NNNNN-NNN ou NNNNNNNN, que é a máscara correta para os CEPs.

O assunto é bem extenso e tem diversos detalhes importantes. Para quem quiser usar ou fazer o teste acima, recomendo instalarem o TextPad que pode ser encontrado em português. Depois que estiver com o editor aberto, copie as linhas abaixo:

João da Silva, Rua da Vitória, 234, São Paulo - SP, 09872-765, Brasil
Marcelo Salgado, Avenida 9 de julho, 2131, ap 87, Ribeirão Preto - SP, 03472-125
Brasil Celina Corrêa, Rua da Glória 12, São Paulo, 0324-908, Brasil
Augusto Morais, Alameda dos Canários, 234, Cotia, 22098-711, Brasil

Agora clique no menu superior em Pesquisar -> Localizar. Digite no campo Localizar o seguinte: [0-9]\{5\}-?[0-9]\{3\}

Selecione a opção “Expressão regular” e depois clique no botão “Marcar tudo”. Pronto, o editor marcou com uma seta todas as linhas que tem o CEP no formato correto.

Para todos que se interessarem, recomendo a leitura do livro “Expressões Regulares - Guia de Consutla Rápida” do Aurélio Marinho Jargas, ele explica o uso de forma bem didática e informal. Para os que querem realmente se aprofundar no tema, um bom livro é o “Mastering in Regular Expressions” da O´Reilly.

Bom divertimento!