Artigo da .net Magazine 39 - Entendendo Expressões Regulares
Artigo publicado na .net Magazine 39.
Clique aqui para ler esse artigo em PDF.
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. |
Este artigo pretende desmistificar o uso de Expressões Regulares e fornecer meios para utilização desse recurso de forma simples e prática. As origens das expressões regulares remontam ao ano de 1943, quando dois neurologistas,MacCulloc ePitts, publicaram um estudo que teorizava o funcionamento dos neurônios, sua base encontra-se na teoria dos autômatos finitos e na teoria da linguagem formal.
Na década de 50 o matemáticoStephen Kleenedescreveu esses modelos usando uma notação matemática chamada grupos regulares. O encontro com o computador, só aconteceu mesmo em 1968, quandoKen Thompson utilizou a notação em um algoritmo de busca utilizado no editor de textosqed, que depois virou oed (EDitor padrão dos primeiros sistemas Unix).
Esseed tinha o comando de contextog, que aceitavaexpressões regulares e um comandop, e sua sintaxe ficavag/RE/p (Global Regular Expression Print), que deu origem ao aplicativogrep, que por sua vez originou oegrep.
Finalmente em 1986 foi criado o divisor de águas, um pacote pioneiro em C chamadoregex 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 emPerl,Python,Emacs e TCL. O NFA utiliza um algoritmo de inferência chamadoBacktracking.
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 mecanismobacktracking em toda sua potencialidade.
" [...] continue lendo...
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo