Expression régulière: supprimer tous les caractères spéciaux
Je croyai avoir compris, mais j'ai toujours du mal.
En fait, maintenant j'ai une chaine de caractere dans laquelle je souhaite supprimer tout les caractere qui ne sont pas compris dans: [a-zA-Z0-9] ainsi que les espaces de celle-ci.
Je fait donc ça:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
my $unechaine = "Manip-ulati@ on";
my $chainefinal;
while (length($unechaine) > 0){
$lengthchaine = length($unechaine);
if (substr($unechaine,0,1) =£ /^[0-9a-zA-Z]*$/){
if (substr($unechaine,0,1) ne " "){
$chainefinal.=substr($unechaine,0,1);
} else{
$unechaine = substr($unechaine,-($lengthchaine-1))
}
} else {
$unechaine = substr($unechaine,-($lengthchaine-1));
}
}
my bonnechaine = $chainefinal; |
Hors je trouve que cela n'est pas pratique, et surtout long. N'est il pas possible de faire la meme chose avec une expression reguliere??
PS: le £ represente le caractere "vague" qu'il faudrait ecrire a la place de £.