IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

regex : capture d'accents - \p{L} ne marche pas


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 29
    Points : 24
    Points
    24
    Par défaut regex : capture d'accents - \p{L} ne marche pas
    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

  2. #2
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Le problème est du à l'encodage de ton fichier et/ou l'encodage de ta console.

    Ton code passe sans problème sous eclipse.

Discussions similaires

  1. RegEx - Quid des accents ?
    Par Daikyo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/03/2008, 10h33
  2. [RegEx] regex majuscule avec accent
    Par zobsystem dans le forum Langage
    Réponses: 5
    Dernier message: 22/06/2007, 16h29
  3. [RegEx] [regex][preg_match_all]ma regex marche pas
    Par hansaplast dans le forum Langage
    Réponses: 15
    Dernier message: 05/09/2006, 14h59
  4. [RegEx] Regex pour les accents et autres
    Par yule dans le forum Langage
    Réponses: 4
    Dernier message: 21/08/2006, 15h47
  5. [Regex] gestion des accents dans un mot
    Par joseph_p dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 10/05/2006, 09h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo