P>

Clique aqui para ler todos os artigos desta edição
.NET Framework
Entendendo Expressões Regulares
|
Este artigo discute |
Este artigo usa as seguintes tecnologias |
|
· Expressões Regulares; · RegularExpressionValidator; · ValidationSummary. |
Visual Studio 2005, C# e ASP.NET. |
Na década de 50 o matemático Stephen Kleene descreveu esses modelos usando uma notação matemática chamada grupos regulares. O encontro com o computador, só aconteceu mesmo em 1968, quando Ken Thompson utilizou a notação em um algoritmo de busca utilizado no editor de textos qed, que depois virou o ed (EDitor padrão dos primeiros sistemas Unix).
Esse ed tinha o comando de contexto g, que aceitava expressões regulares e um comando p, e sua sintaxe ficava g/RE/p (Global Regular Expression Print), que deu origem ao aplicativo grep, que por sua vez originou o egrep.
Finalmente em 1986 foi criado o divisor de águas, um pacote pioneiro em C chamado regex que tratava das expressões regulares e qualquer um poderia incluí-lo em seu próprio programa. Aí não teve mais volta, as expressões caíram no gosto popular e cada vez mais e mais programas e linguagens as utilizam.
Podemos dizer, resumidamente, que Expressões Regulares é um método poderoso, flexível e muito eficiente para especificar um determinado padrão de texto, ou seja, a partir da composição de símbolos, da utilização de caracteres com funções especiais (metacaracteres) e caracteres literais, formam uma expressão, que será interpretada como regra para validação dos dados informados.
As expressões regulares são projetadas e otimizadas para a manipulação de texto, ela é composta por dois tipos básicos: caracteres de texto literal (texto normal) e caracteres especiais (metacaracteres), cujo conjunto fornece às expressões regulares capacidade de processamento, permitindo analisar grande quantidade de texto.
O .NET Framework implementa o mecanismo NFA (Nondeterministic Finite Automaton) tradicional, como aqueles utilizados em Perl, Python, Emacs e TCL. O NFA utiliza um algoritmo de inferência chamado Backtracking.
Esse procedimento faz com que o sistema retorne pelo mesmo caminho percorrido com a finalidade de encontrar soluções alternativas, testando todas as possibilidades de uma expressão regular em uma ordem específica, aceitando a primeira correspondência encontrada.
No caso mais crítico o NFA pode se tornar muito lento devido ao grande número de caminhos percorridos para realizar a busca. Com o objetivo de explorar ao máximo os benefícios de um mecanismo NFA, o .NET Framework inclui um conjunto completo de construções para permitir que os programadores utilizem o mecanismo backtracking em toda sua potencialidade.
Essas construções podem ser usadas para localizar correspondências mais rapidamente ou para preferir expansões específicas sobre outras. As classes de expressão regular do .NET Framework, fazem parte da biblioteca de classes base e podem ser usadas em qualquer linguagem ou ferramenta que utilize o Common Language Runtime, incluindo ASP.NET e Visual Studio 2005.
Elementos das Expressões Regulares
Classes de Caracteres: Uma classe de caractere é um conjunto de caracteres que localizará uma correspondência entre um dos caracteres incluídos no conjunto. A Tabela 1 relaciona os metacaracteres dessa classe.
|
Metacaracteres |
Descrição | |||
|
. (ponto) |
Corresponde a qualquer caractere, exceto \n (quebra de linha). | |||
|
[] |
Combina qualquer caractere contido entre colchetes, para especificar uma faixa de valores informe o valor inicial e final, separados por um hífen (-), por exemplo:
|