Samuel Dias Neto
sdiasneto@yahoo.com.br
Expressões regulares são combinações de alguns caracteres especiais que auxiliam na busca de determinados padrões e conjuntos de caracteres seja em um texto ou no nome de arquivos.
Vários programas e linguagens de programação tem suporte a expressões regulares, entre eles podemos citar: grep, egrep, find, sed, awk, lex, perl, tcl e python.
O ponto corresponde a qualquer caractere em sua posição. Exemplo:
samuel@aranha:~$ cat teste.txt Expressões Regulares são combinações de alguns caracteres especiais que auxiliam na busca de determinados padrões e conjuntos de caracteres seja em um texto ou no nome de arquivos de determinado(s) diretório(s). Vários programas e linguagens de programação tem suporte a expressões regulares, entre eles podemos citar: grep, egrep, find, sed, awk, lex, perl, tcl e python. samuel@aranha:~$ grep Regulares teste.txt Expressões Regulares são combinações de alguns caracteres especiais samuel@aranha:~$ grep regulares teste regulares, entre eles podemos citar: grep, egrep, find, sed, awk, lex, samuel@aranha:~$ grep .egulares teste.txt Expressões Regulares são combinações de alguns caracteres especiais regulares, entre eles podemos citar: grep, egrep, find, sed, awk, lex, samuel@aranha:~$
Observe que quando usamos a expressão regular .egulares o comando grep retornou tanto a linha com "Regulares" quanto a linha com "regulares".
Os colchetes podem corresponder a qualquer um dos caracteres dentro dele:
[abcd] => corresponde a qualquer um dos caracteres a,b,c ou d
e também pode corresponder a qualquer caractere num determinado intervalo:
[a-d] => corresponde a qualquer caracter no intervado de a até d
Exemplos:
samuel@aranha:~$ grep [rR]egulares teste.txt Expressões Regulares são combinações de alguns caracteres especiais regulares, entre eles podemos citar: grep, egrep, find, sed, awk, lex, samuel@aranha:~$ grep [a-z]egulares teste.txt regulares, entre eles podemos citar: grep, egrep, find, sed, awk, lex, samuel@aranha:~$ grep [A-Z]egulares teste.txt Expressões Regulares são combinações de alguns caracteres especiais samuel@aranha:~$ grep [a-zA-Z]egulares teste.txt Expressões Regulares são combinações de alguns caracteres especiais regulares, entre eles podemos citar: grep, egrep, find, sed, awk, lex, samuel@aranha:~$
se você iniciar os colchetes com o caracter ^ a correspondência será com todos os caracteres, exceto aqueles dentro dos colchetes. Exemplo;
samuel@aranha:~/teste$ ls arq1 arq2 arq3 arqA arqB samuel@aranha:~/teste$ find . -regex .*arq[^A-Z] ./arq1 ./arq2 ./arq3 samuel@aranha:~/teste$ find . -regex .*arq[^0-9] ./arqA ./arqB samuel@aranha:~/teste$
OBSERVAÇÃO:Não esqueça que o find procura o nome do arquivo no PATH completo, por isso nossa expressão regular começa com .*, que em expressões regulares equivale a qualquer caracter.
O asterisco é um quantificador que corresponde ao caracter imediatamente anterior zero ou mais vezes
a* => corresponde a: "nada" a aa aaa aaaa ...
O sinal de adição é outro quantificador, porém corresponde ao caracter imediatamente anterior uma ou mais vezes
a+ => corresponde a: a aa aaa aaaa ....
O sinal de interrogação é outro quantificador, porém corresponde ao caracter imediatamente anterior zero ou uma vez apenas
a? => corresponde a: "nada" a
As chaves definem um quantificador numérico.
[0-9]{5}
a expressão regular acima corresponde a uma string de cinco dígitos, os quais podem variar entre zero e nove.
Também podemos definir um intervalo para o quantificador numérico:
{,5} => de zero a cinco
{5,} => de cinco a infinito
{3,5} => de três a cinco
Corresponde a expressão procurada no início da linha.
samuel@aranha:~/teste$ cat teste.txt Expressões Regulares são combinações de alguns caracteres especiais que auxiliam na busca de determinados padrões e conjuntos de caracteres seja em um texto ou no nome de arquivos de determinado(s) diretório(s). Elas não são expressões tabulares. Aliás, nem sei o que são Expressões Tabulares. Vários programas e linguagens de programação tem suporte a expressões regulares, entre eles podemos citar: grep, egrep, find, sed, awk, lex, perl, tcl e python. samuel@aranha:~/teste$ cat teste.txt | grep ^Expressões Expressões Regulares são combinações de alguns caracteres especiais Expressões Tabulares. samuel@aranha:~/teste$
Corresponde a expressão procurada no final da linha.
samuel@aranha:~/teste$ cat teste.txt Expressões Regulares são combinações de alguns caracteres especiais que auxiliam na busca de determinados padrões e conjuntos de caracteres seja em um texto ou no nome de arquivos de determinado(s) diretório(s). Elas não são expressões tabulares. Aliás, nem sei o que são Expressões Tabulares. Vários programas e linguagens de programação tem suporte a expressões regulares, entre eles podemos citar: grep, egrep, find, sed, awk, lex, perl, tcl e python. samuel@aranha:~/teste$ cat teste.txt | grep expressões$ Vários programas e linguagens de programação tem suporte a expressões samuel@aranha:~/teste$
. => qualquer caractere em sua posição
[acz] => qualquer um dos caracteres, no caso: a, c ou z
[a-d] => qualquer caracter do intervalo, no caso: a,b,c ou d
[157] => 1,5 ou 7
[0-7] => 0,1,2,3,4,5,6 ou 7
[^Z] => qualquer caractere, exceto Z
a* => "a" zero ou mais vezes
a+ => "a" uma ou mais vezes
a? => "a" zero ou uma vez
a{5} => "a" cinco vezes
a{5,} => "a" de cinco a infinito vezes
a{,5} => "a" de zero a cinco vezes
^a => "a" no início da linha
a$ => "a" no final da linha
.* => qualquer caractere
OBSERVAÇÕES: