Re: [Cascavel-pm] Newbie - Uso de translation TR para converter caracteres acentuados para minúsculas

Vinicius Alves perl em atechs.com.br
Sexta Outubro 21 13:18:28 PDT 2005


VAmos ver se essa mensagem chega na lista (nada que eu mando chega aqui na
minha caixa)...

Geralmente para trabalhar com acentos eu uso

use locale;

e depois o lc() como vc sugeriu. Para mim sempre funcionou direitinho.

[]´s
Vinicius
----- Original Message ----- 
From: "Joenio Marques" <joenio em gmail.com>
To: "Cascavel Perl Mongers" <cascavel-pm em pm.org>
Sent: Friday, October 21, 2005 10:25 AM
Subject: Re: [Cascavel-pm] Newbie - Uso de translation TR para converter
caracteres acentuados para minúsculas


> Gostaria de converter strings com ou sem acentos para letras
> minúsculas. Após isto retirar caracteres não alfanuméricos.
>
> Pq o codigo abaixo não dá certo?
>
> my $str = "disse: POÇO avião!"; #Entrada

Acho que antes de mais nada voce deveria converter a string para
minusculo sem se preocupar ainda com acentos ou caracteres nao
alfanumericos. Uma das formas de fazer isso é usando a funcao lc.

$str = lc($str);

Com isso voce nao precisaria de $acentosU e $acentosL, apenas
$acentosL ou somente $acentos.

my $acentos = "áàãâéêíóôõúüç";

> #A partir daqui o codigo executa normalmente:

Ao utilizar a funcao lc acima a linha abaixo se torna desnecessaria.
> $str =~ tr/A-Z/a-z/;

> $str =~ s/[^\w\s\-$acentosU$acentosL]//g;

Talvez nao seja necessario utilizar $acentos na substituicao acima.
Ficando apenas:

$str =~ s/[^\w\s-]//g;

obs.: Dentro de lista [ ] nao é necessario utilizar \- para o caracter -

> print $srt; # SAÍDA: disse poço avião

Agora é só encontrar um meio de substituir os caracteres acentuados em
$acentos pelos seus respectivos.
Nunca fiz isso... sugiro voce apostar no chute do Alceu. locale ou utf8.

Att,
Joenio Marques
_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm



-- 
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.344 / Virus Database: 267.12.4/143 - Release Date: 19/10/2005



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