Após desbravarmos como limpar dados com REGEXP_REPLACE
, vamos agora explorar outra função poderosa das expressões regulares no Oracle: REGEXP_SUBSTR
. Esta função é incrível para extrair informações específicas de strings, permitindo a você isolar exatamente os dados que precisa sem alterar o restante do texto.
Antes de avançarmos, se você precisa de uma recapitulação sobre as regras de expressões regulares, confira nossa Tabela de Regras de Expressões Regulares Comuns.
O Que é REGEXP_SUBSTR
?
REGEXP_SUBSTR
é uma função que permite extrair uma substring de uma string que corresponde a um padrão de expressão regular definido. É extremamente útil para casos como extração de códigos, números de telefone, e-mails e muito mais de um conjunto de dados maior.
Exemplo Prático 1: Extração de Código Postal
Imagine que você tem uma coluna endereco
com endereços completos e quer extrair apenas o código postal. Supondo que o código postal segue o padrão de cinco dígitos no final do endereço, aqui está como você faria isso:
SELECT endereco,
REGEXP_SUBSTR(endereco, '[0-9]{5}$') AS codigo_postal
FROM enderecos;
Endereço Completo | Código Postal |
---|---|
Rua das Flores 123, São Paulo, 12345 | 12345 |
Av. Brasil 999, Rio de Janeiro, 23456 | 23456 |
Praça da Árvore, Belo Horizonte, 34567 | 34567 |
Exemplo Prático 2: Encontrando E-mails em Texto
Se você precisa extrair e-mails de um campo de texto livre, REGEXP_SUBSTR
pode ajudar a capturar essas informações de forma eficaz. Vamos ver:
SELECT comentario,
REGEXP_SUBSTR(comentario, '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}') AS email
FROM comentarios;
Comentário | |
---|---|
Entre em contato via email@example.com. | email@example.com |
Meu e-mail para contato: user@test.org | user@test.org |
Por favor, use company@mail.com para isso. | company@mail.com |
Conclusão
Com REGEXP_SUBSTR
, a extração de dados específicos de textos torna-se uma tarefa simples e direta. Espero que esses exemplos inspirem você a explorar ainda mais as possibilidades das expressões regulares no Oracle. Para mais dicas sobre como limpar dados, não deixe de visitar nosso post sobre Simplificando a Limpeza de Dados com Expressões Regulares no Oracle.