Bonjour,
Je souhaite, dans un String, ne garder que les caractères alphanumériques.
Y'a t-il un moyen simple de le faire ? Avec des expressions régulières ?
Merci.
Bonjour,
Je souhaite, dans un String, ne garder que les caractères alphanumériques.
Y'a t-il un moyen simple de le faire ? Avec des expressions régulières ?
Merci.
Ouaip, une expression régulière est la plus simple façon de faire
Je te donne un exemple que tu peux adapter
La regexp dit que tu remplaces tous les caractères qui ne sont pas (^) dans les plages a-z, A-Z, 0-9 par une chaine vide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 String cleanString = dirtyString.replaceAll("[^a-zA-Z0-9]", "");
Sinon, y'a plus court :
Ca remplace tous les caractères qui ne sont pas considérés comme des mots (exactement la même chose que plus haut)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 String cleanString = dirtyString.replaceAll("\\W", "");
d'accord merci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part String cleanString = dirtyString.replaceAll("[^0-9]", "");
Pas tout à fait, car \w contient également le underscore. Donc l'équivalent de [^a-zA-Z0-9] serait plutôt [\\W_].Envoyé par eulbobo
Autre chose, quand on souhaite remplacer des caractères par une chaîne vide, autant offrir la possibilité d'en remplacer plusieurs d'un coup en ajoutant un quantificateur, ce qui réduit le nombre de remplacements nécessaires: [^a-zA-Z0-9]+Là, tu enlèves aussi les lettres (alphanumérique désigne aussi bien les chiffres que les lettres), mais peut-être que c'est ce que tu souhaitais faire? Et pour être totalement rigoureux tu aurais dû préciser que tu souhaitais te limiter aux chiffres de la table ascii.Envoyé par CliffeCSTL
Partager