Bonjour à tous,

J'essaie actuellement de capturer des mots avec accents.

Voici le code sur lequel je fais mes test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
String texte = "aéa";
Pattern p;
Matcher m;
p = Pattern.compile("\\p{L}");
m = p.matcher(texte);
while (m.find()){
			System.out.println(m.group());	
		}
avec ceci, la console me retourne
a
a
"é" ne fait-il pas aussi parti de la classe de caractères définis par \p{L} (que l'on peut aussi écrire \pL si je ne m'abuse) ?


si je remplace mon pattern par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
p = Pattern.compile("é");
j'obtiens (ca fonctionne) :
é
par contre si je remplace mon pattern par :
p = Pattern.compile("[\\wé]");
J'obtiens
a
?
?
a



En note finale, je précise que j'utilise TextMate pour coder en java et que je sauvegarde mes .java en UTF-8.
Quant à la console que j'utilise (le Terminal fourni dans OSX (oui oui je suis sous mac), elle accepte entre autres comme encodages,
UTF8, MAC OS Roman, ISO Latin 1, ISO Latin 9, Windows Latin 1, et bien sur ASCII (+bien d'autres).

Où est le blem ?


edit : si je remplace
par j'obtiens avec le pattern "\\p{L}" :
a
?
a