Na sequência da rubrica Domingo é dia de dicas do Microsoft Word, decidi escrever uma pequena dica de como usar o Microsoft Excel juntamente com expressões regulares.
O PDF é um formato muito popular hoje em dia, sendo comum existir alguma aplicação que leia este formato em qualquer computador pessoal ou de uso público. Existem inúmeras ferramentas que convertem os nossos documentos para este formato, mas quando o que queremos é o contrário, as coisas nem sempre correm como gostaríamos.
Suponhamos que, tal como me ocorreu, gostaria de copiar uma pauta escolar recebida em PDF e calcular a média das notas. Quando tentei fazer isso, o formato da tabela perdeu-se completamente!
Para tabelas pequenas, é viável fazer tudo manualmente, mas no caso de pautas com dezenas ou centenas de linhas, torna-se extremamente penoso faze-lo. O problema acentua-se nos casos em que cada registo da tabela tem um número diferente de palavras, como mostra este exemplo. É aqui que entram as Expressões Regulares.
Queremos apagar tudo o que está antes do campo Turma, inclusive. Para começar, copiamos tudo para o Excel e abrimos a janela de pesquisa com CTRL + L (atalho da versão portuguesa).
Para este exemplo, vou inserir «*T?» no campo “Localizar” e vou deixar o campo “Substituir” em branco, para eliminar todas as ocorrências. Esta expressão tem um significado especial. O asterisco tem o significado de “qualquer sequência de caracteres”, a letra T é lida literalmente e o ponto de interrogação é lido como “um carácter qualquer”. Na prática, esta expressão corresponde a dizer “todos os caracteres até uma letra T, mais o caracter seguinte”.
Depois só temos de substituir todas as vírgulas por pontos, se necessário, e temos finalmente uma coluna só com a informação pretendida!
O uso de expressões regulares está disponível em diversas aplicações além do Excel. A título de exemplo, posso indicar os programas da família Libre Office, ou o Notepad++. Para quem quiser averiguar um pouco mais sobre expressões regulares, sugiro a consulta da tabela seguinte.