[Cascavel-pm] Tradução de expressão regular

Breno G. de Oliveira breno em clavis.com.br
Quarta Setembro 21 14:51:49 PDT 2005


Sandro de Almeida Filho wrote:
> vocês podem me dizer o que as seguintes expressões regulares fazem nas
> seguintes variaveis (abaixo)??
> 

Olha Sandro, a única ER que "faz" alguma coisa na variável é a que tem
"s///". Vamos lá:

> $variavel_um =~ /([^\/\\]+)$/;

verifica se a $variavel_um é uma string contendo um ou mais caracteres
que não sejam '/' ou '\' no final da string. Se encontrar, joga o
conteúdo na variável especial do Perl $1. O padrão pode ser traduzido como:
um_ou_mais_caracteres_do_tipo(não "/" e não "\")->fim
Exemplos:
1) se $variavel_um = '\abc\def/ghi', a regra retorna sucesso e a
variável $1 ganha o valor "ghi".
2) se $variavel_um = '\abc\def/', a regra retorna falha.

> $variavel_dois =~ s/^\.+//;

verifica se a $variavel_dois é uma string contendo um ou mais caracteres
'.' (ponto) no inicio dela. Se encontrar, remove os mesmos da variável.
O padrão pode ser traduzido como:
substitua(inicio->um_ou_mais_pontos) por(vazio)
Exemplos:
1) se $variavel_dois = '....qwerty', a regra retorna sucesso e a
variavel $variavel_dois passa a valer "qwerty" (repare que ele apagou a
substring "...." de dentro da variavel por causa da regra)
2) se $variavel_dois = 'abcde', a regra retorna falha e não substitui nada.

> $variavel_tres =~ /^\s*$/;

verifica se a $variavel_tres é uma string contendo apenas caracteres de
espaço, tab ou nova linha (conteúdo "em branco"). O padrão pode ser
traduzido como:
início->zero_ou_mais_espaços->fim
Exemplos:
1) se $variavel_tres = '               ' ou $variavel_tres = '', a regra
retorna sucesso.
2) se $variavel_tres = '        aa     ', a regra retorna falha.

Vc pode obter maiores informações sobre expressões regulares em Perl nos
links abaixos (um tutorial completo do nivel iniciante ao avancado e um
"quick start"):

http://search.cpan.org/~nwclark/perl-5.8.7/pod/perlretut.pod
http://search.cpan.org/~nwclark/perl-5.8.7/pod/perlrequick.pod


Espero ter ajudado.

[]s

breno


Mais detalhes sobre a lista de discussão Cascavel-pm