Suppression/remplacement des caractères accentués

Suppression/remplacement des caractères accentués - Perl - Programmation

Marsh Posté le 07-07-2005 à 16:44:11    

Bonjour,
 
J'essaie d'eliminer les caractères accentués et les remplacer par leurs équivalents sans accents via la substitution suivante :
 

Code :
  1. my $ligne = "abîmée";
  2. $ligne =~ s/ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöùúûüýÿ/AAAAAACEEEEIIIINOOOOOUUUUYaaaaaaceeeeiiiinooooouuuuyy/g;
  3. print $ligne;


 
qui m'affiche le résultat suivant :

Code :
  1. abîmée


 
J'ai l'impression que la substitution avec les caractères accentués ne passe pas, alors que si je remplace le 'e' par un 's' dans l'expression ça marche.
 
Y'a-t-il une solution?
Merci d'avance.

Reply

Marsh Posté le 07-07-2005 à 16:44:11   

Reply

Marsh Posté le 07-07-2005 à 16:48:46    

Pour ce genre de tâche, je trouve que tr/// est plus adapté :
 

Code :
  1. my $ligne = "abîmée";
  2. $ligne =~ tr/ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöùúûüýÿ/AAAAAACEEEEIIIINOOOOOUUUUYaaaaaaceeeeiiiinooooouuuuyy/;
  3. print $ligne;


 

Reply

Marsh Posté le 07-07-2005 à 17:02:15    

Merci bien ;)
 
Je crois que je me suis tout simplement trompé d'opérateur...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed