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

Nelson Ferraz nferraz em gnubis.com.br
Quarta Setembro 21 14:44:12 PDT 2005


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

O "$" no final da expressão regular indica que a pesquisa deve ser feita no final da string. Os parenteses indicam que a regexp irá retornar o que for encontrado.

[^x] bate com qualquer coisa diferente de "x"

Como os caracteres / e \ são especiais, é necessário "escapá-los": \/ e \\ respectivamente.

[^\/\\] bate com qualquer coisa diferente de "\" e "/"

[^\/\\]+ significa uma ou mais ocorrências de qualquer caractere diferente de "\" e "/"

Ou seja... estamos procurando "uma ou mais ocorrências de qualquer caractere diferente de \ e /" no final da string. Isso parece familiar?

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

s/foo/bar/ substitui "foo" por "bar" em uma string. No caso, estamos substituindo /^\.+/ por vazio.

O "^" no início da expressão indica que a substituição deve ser feita no início da string.

Novamente estamos "escapando" um caractere: \.+ indica que queremos um caractere ponto, uma ou mais vezes.

Sugestão de leitura: perldoc perlre (Perl regular expressions)

[]s

Nelson


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