Regex com PL/SQL (Oracle)
[ad#texto]
Regex costuma ser um grande desafio para desenvolvedores iniciantes, primeiro por não compreenderem claramente como funciona e o seu objetivo e segundo por não saberem corretamente quando aplicar, vamos aproveitar este espaço para esclarecer o que é Regex e em seguida como aplica-la utilizando Oracle PL/SQL.
Regex nada mais é do que uma expressão (conjunto de caracteres específicos) utilizada para realizar buscas específicas alfanuméricas, seu poder é tão vasto que a maioria dos mecanismos de buscas atuais implementa Regex em sua engine visto a sua versatilidade, eficiência e escalabilidade.
Regex (abreviação de Regular Expressions ou traduzindo o termo para o português fica ER de Expressão Regulares) tem origem nos estudos de neurolinguística da década de 40 e nos estudos de matemática na década de 50 e tem como representante maior Stephen Cole Kleene e tem ampla aplicação na ciência da computação e matemática.
Está incorporada em diversas linguagens e plataformas de programação, como Java, C e C# (só para citar alguns) e em diversos SGBDs sendo incorporada a normatização ANSI SQL99. Algumas de suas aplicações na informática são:
- Localizar um pedaço de texto onde temos somente uma “ideia” de como será (sem precisão na busca);
- Localizar texto pelo início ou termino já conhecido;
- Efetuar buscas complexas (com base em padrões) em texto;
- Validar strings;
- Filtrar texto.
Especificamente falando em Oracle, Regex está implementando na versão 10G e superiores, os principais comandos embutidos no PL/SQL para utilização de Regex são:
- REGEXP_LIKE(): similar ao comando LIKE, porém implementado sob a ótica das Regex, presta-se a consulta dos termos estabelecidos;
- REGEXP_REPLACE(): altera a string localizada pelo termo informado, substituindo por outro valor (string);
- REGEXP_SUBSTR(): efetua a busca por parte da string encontrada com base no termo proposto;
- REGEXP_COUNT(): está disponível somente a partir da versão 11G. Efetua a contagem de quantas ocorrências para o termo buscado foram encontradas.