Expressões Regulares em Banco
de Dados, muito além do Like – Parte 01
I – Introdução:
Expressões regulares representam uma poderosa
ferramenta para
descrição e busca
de padrões em
diversos tipos
de suporte de dados.
Esses podem ser
bases de dados,
textos ou
mesmo na própria
Internet, como
podemos presumir a busca,
com a utilização
de padrões,
é uma atividade bastante
comum, em
diversas áreas do conhecimento, e que já
possui um instrumental bastante variado
em todos
os tipos de sistemas,
sejam eles tipicamente comerciais ou científicos. Nesse contexto
situa-se a importância de ferramentas cada
vez mais
versáteis, quer sejam de extração de conhecimento
ou de identificação
de dados. Nesse ponto
introduzimos uma técnica que poderá servir perfeitamente aqueles
que necessitam de mais
ferramentas para
realizar suas
pesquisas em
suas bases
de dados: Expressões Regulares.
Expressões Regulares já constam como
recurso disponível
em diversos
sistemas de informação
há muito tempo,
para os aficionados
por Unix/Linux o grep (“Global Regular
Expression Print”) não
é nenhuma novidade, assim como sua utilização em editores de texto
e linguagens de programação(
tais como Java e Perl etc...), e também
já se encontra incorporado “oficialmente”
aos Sistemas Gerenciadores de Bases de Dados(SGBDS)
a partir dos SGBDS padrão
ANSI (American National Standards Institute - Instituto
Nacional Americano
de Padronização) SQL99.
Para a Ciência da Computação
Expressões
Regulares(ERs ou
do inglês abreviado regex - regular expression) provê uma forma eficiente de identificar e manusear cadeias de caracteres de interesse, como caracteres
particulares, seqüências alfanuméricas, padrões numéricos, etc... Dessa forma
podemos, por exemplo, utilizar ERs para:
· Localizar um determinado trecho de texto que só se tem idéia das variações possíveis.
· Procurar seqüências alfanuméricas que se iniciem ou terminem com caracteres conhecidos.
· Realizar busca com padrões complexos de combinações alfanuméricas.
· Validação de formatos de texto
· Filtragem de informação.
A base teórica
das ERs
vem de estudos da neurolinguística na década
40, assim como da matemática
na década de 50, temos como um nome importante Stephen Cole Kleene, que
teve grande influência
na Ciência da Computação
e na Matemática. Como
recurso de SGBDs, as ERs, foram oficialmente
adicionado pelo padrão
SQL:1999(ANSI), como já mencionado, em
conformidade com
o padrão POSIX (Acrônimo
para Portable Operating System Interface
que pode ser
traduzido como Interface
Portável entre
Sistemas Operacionais).
Trata-se de uma família de normas definidas pelo IEEE (Institute
of Electrical and Electronics Engineers - Instituto de Engenheiros Eletricistas e Eletrônicos)e designada
formalmente por IEEE 1003.
Na data em
que esse
artigo estava sendo redigido vários SGBDs já
ofereciam algum
suporte a ERs, como
o Microsoft SQL Server 2000, Mysql, PostgreSQL, Oracle10G entre
outros. Infelizmente
a falta de padronização
na implementação de recursos
por parte
dos fabricantes de SGBDs é muito sentida em termos de
ERs.
Esse artigo cobre
a utilização de ERs no SGBD Oracle, versões 10G e 11G, com informações necessárias aos usos
mais recorrentes
dessas funções. Caso
esteja trabalhando com outro SGBD e queira utilizasse das informações aqui
encontradas, por gentileza
consulte a documentação do mesmo para verificar
a compatibilidade.
II – Caracteres
especiais utilizados nas Expressões Regulares
Para utilização
de Expressões Regulares,
se faz necessário conhecer
alguns metacaracteres( entenda por “curingas” ou “alias”) que
são encontrados na utlização de ERs,
nesse instante apenas
sitarei alguns realações mais completas poderão ser
encontradas a apartir das referências no
final do artigo.
Para utilização de expressões regulares
existem vários metacaracteres que devem ser conhecidos, entre
eles:
O padrão POSIX possui também classes pré-definidas que
podem ser utilizados com
([ ]) – brackets. Temos como exemplos: [[:lower]], [[:digit]] entre outros, veja relação
a seguir:
Como já foi colocado, os interessados em aprofundar seus conhecimentos
nesse assunto podem utilizar
as referências presentes
no item 5 (Para
saber mais )
desse artigo, lá
encontraram informações de onde pesquisar as relações de completas de metacaracteres e classes disponíveis.