Extrair dados de texto com regex — emails, datas e preços
Extrair dados estruturados de textos não estruturados é uma tarefa recorrente em automação, análise de dados e web scraping. Com expressões regulares bem construídas, você pode identificar e capturar emails, datas, valores monetários, números de telefone e qualquer outro padrão repetível em documentos de texto, planilhas ou páginas web. O Testador de Regex da WikiPlus, com seu processamento 100% local no navegador, é o ambiente ideal para desenvolver e refinar esses padrões de extração antes de aplicá-los em scripts de automação ou pipelines de dados.
Extraindo endereços de email de textos
Textos corporativos, relatórios e páginas web frequentemente contêm endereços de email embutidos. Uma regex eficiente para extrair emails é: [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}. Diferente das regex de validação que usam âncoras ^ e $, para extração você omite as âncoras para que a regex encontre padrões em qualquer posição do texto. Com a flag global (g), ela captura todos os emails do texto de uma vez. Para extrair apenas emails de domínios .com.br, você pode refinar: [a-zA-Z0-9._%+-]+@[a-zA-Z0-9-]+\.com\.br. Teste com exemplos reais no Testador de Regex da WikiPlus: cole um texto que contenha emails misturados com outro conteúdo e verifique se todos são capturados corretamente sem falsos positivos.
Capturando datas em diferentes formatos
Datas aparecem em muitos formatos diferentes em documentos reais: DD/MM/AAAA (padrão brasileiro), AAAA-MM-DD (ISO 8601), DD de mês por extenso de AAAA, e outros. Para capturar o formato brasileiro: (0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[0-2])/(\d{4}). Para o formato ISO: \d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]). Para datas por extenso como '12 de maio de 2026': (\d{1,2}) de (janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro) de (\d{4}). Usando grupos de captura, você pode não apenas encontrar a data mas extrair separadamente o dia, mês e ano para conversão de formato. Isso é muito útil em scripts de normalização de dados históricos com formatos inconsistentes.
Extraindo preços e valores monetários brasileiros
Valores em reais aparecem em formato R$ 1.234,56 ou variações como R$1234,56 ou apenas 1.234,56. Uma regex flexível para capturar valores monetários em reais: R\$\s*[\d.]+(?:,[\d]{1,2})?. Para capturar apenas o número sem o símbolo R$: (?<=R\$\s*)[\d.]+(?:,[\d]{1,2})?. Esta segunda versão usa lookbehind para encontrar números precedidos por R$ sem incluir o símbolo na captura. Para valores sem símbolo monetário mas com formatação de milhar e centavos brasileira: \b\d{1,3}(?:\.\d{3})*(?:,\d{2})\b. Esses padrões são úteis em extração de preços de e-commerces, notas fiscais eletrônicas (NF-e) e planilhas financeiras. Sempre teste com exemplos reais que incluam os edge cases mais comuns do seu contexto.
Extração de dados em pipelines Python e JavaScript
Na prática, extração de dados com regex faz parte de scripts maiores de processamento. Em Python, o padrão mais eficiente é compilar a regex uma vez e reutilizá-la: import re; padrao = re.compile(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'); emails = padrao.findall(texto). O método findall retorna uma lista com todas as correspondências. Para extração com grupos, use finditer que retorna objetos Match com acesso a cada grupo. Em JavaScript, o método matchAll (ES2020) retorna um iterador de todos os matches com grupos: [...texto.matchAll(/regex/g)]. Para documentos grandes, como logs de servidor com milhões de linhas, processe linha a linha em vez de carregar tudo na memória. Desenvolva e valide os padrões no Testador de Regex da WikiPlus com amostras representativas antes de escalar.
Perguntas frequentes
- Como extrair apenas números de telefone celular (com 9 dígitos) de um texto?
- Use a regex: \(?\d{2}\)?[\s.-]?9\d{4}[\s.-]?\d{4}. Ela captura celulares com DDD entre parênteses ou não, com ou sem separadores. O '9' obrigatório após o DDD identifica celulares no padrão brasileiro. Teste com variações de formatação para garantir cobertura completa.
- É possível extrair dados de PDFs usando regex com o WikiPlus?
- Sim. Use a ferramenta de OCR ou PDF para Texto da WikiPlus para converter o documento em texto, depois aplique regex no conteúdo extraído usando o Testador de Regex. Todo o processamento ocorre localmente no navegador, garantindo privacidade dos dados do documento.
- Como evitar falsos positivos ao extrair dados com regex?
- Use âncoras de palavra (\b) para garantir que você está capturando padrões completos e não partes de palavras maiores. Adicione contexto negativo com lookbehind ou lookahead negativo. Teste explicitamente com exemplos que NÃO devem ser capturados para verificar que a regex os rejeita corretamente.