Vem cá, mas de onde surgiram essas tais expressões regulares, tem algo a ver com expressões matemáticas?
Sim! Vou te contar uma história. A fecundação dessas expressões aconteceu no ano de 1943, quando os "pais", dois neurologistas, publicaram um estudo que teorizava o funcionamento dos nossos neurônios. Sentiu o drama? Nosso assunto é nobre desde a sua origem.
Anos depois o "parteiro", um matemático, descreveu algebricamente os modelos desse estudo, utilizando símbolos para representar seus recém-criados grupos regulares (do inglês "regular sets"). Com a criação dessa notação simbólica, nasceram as expressões regulares, que durante toda a sua infância e juventude (cerca de 20 anos), foram bastante estudadas pelos matemáticos da época.
Mas o encontro com o computador, só aconteceu mesmo em 1968, em um algoritmo de busca utilizado no editor de textos qed
, que depois virou o ed
, EDitor padrão dos primeiros sistemas Unix. Este 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
.
Outros filhos como o sed
e o AWK
também apareceram, cada um implementando as expressões do seu próprio jeito; e 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, de graça. Opa! Falaram as palavras mágicas: "de graça". 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.
CURIOSIDADE: apesar de esse assunto ser antigo, o que vamos ver aqui basicamente é o mesmo que um estudante veria há 15 anos atrás. É um conceito consistente, que não sofre alterações com o passar do tempo.