Já teve que editar textos longos ? Precisou processar logs feitos por máquinas? Sempre quis saber o que textos como \d, \S e [0-9a-z-] significam?
Seus problemas acabaram! Ou acabaram de começar?
Expressões regulares fazem parte de um grupo de linguagens que, na Hierarquia de Chomsky, são do tipo 3. Ou seja, são totalmente… regulares. Não são uma linguagem de programação em si, mas descrevem padrões de caracteres em um texto.
A melhor forma de explicar Expressões Regulares é com exemplos. As expressões estão delimitadas com barra normal (/) para facilitar a leitura e o uso, como veremos em outros artigos.
/abc/
Uma expressão simples apenas com caracteres texto comuns é buscada ipsis literis. Desta forma os textos “abc”, “abcd”,”-abc” são reconhecidos pela expressão acima. Entretanto o mesmo não pode ser dito dos textos “abd”, “bca” e “xyz”.
/^abc/
O sinal de circunflexo é uma âncora que força que o reconhecimento e a busca ocorram obrigatoriamente a partir do começo do texto. Usando os exemplos acima, “abc” e “abcd” continuam sendo reconhecidos. Porém “-abc” não é mais reconhecido pois os caracteres abc não se encontram mais no começo do texto.
/abc$/
Outra âncora disponível em expressões regulares é o sinal de cifrão, que indica que a expressão deve estar no final do texto. Mais uma vez o texto “abc” atende a esse quesito e, desta vez, o texto “-abc” também. No entanto o texto “abcd” não atende a essa expressão regular, pois não termina com abc.
/^abc$/
As duas âncoras podem ser utilizadas simultaneamente, que significa que todo o texto deve corresponder ao que se encontra entre as âncoras. Apenas o texto “abc” atende a essa regra. Todos os demais exemplos não funcionam neste caso.
Bom, esta é só uma palinha de expressões regulares. Nos próximos artigos vamos voltar no tempo e contar quando surgiram as ExpReg’s e usos mais práticos dessa ferramenta.