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

Collection et Stream Java Discussion :

[Regex] Patterns et replaceAll


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par défaut [Regex] Patterns et replaceAll
    Bonjour,

    J'ai un soucis avec un regex pattern qui devrait me permettre d'enlever des charactères d'une string. Voilà ce que j'ai mis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     	//Retrait des symboles
    		NomCritere = Normalizer.normalize(NomCritere, Normalizer.Form.NFD).replaceAll("[\u0021-\u0040]", "");
    		NomCritere = Normalizer.normalize(NomCritere, Normalizer.Form.NFD).replaceAll("[\u005B-\u0060]", "");
    		NomCritere = Normalizer.normalize(NomCritere, Normalizer.Form.NFD).replaceAll("[\u007B-\u007E]", "");
    La deuxième ligne et elle seule me renvoie:

    Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 4
    [[-`]

    Quelqu'un sait ce qui ne va pas?

    Merci d'avance,
    LDPDC

  2. #2
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    Citation Envoyé par LDPDC Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    		NomCritere = Normalizer.normalize(NomCritere, Normalizer.Form.NFD).replaceAll("[\u005B-\u0060]", "");
    La deuxième ligne et elle seule me renvoie:

    Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 4
    [[-`]

    Quelqu'un sait ce qui ne va pas?
    le compte-rendu te le dit! tu as la chaîne "[[-`]"
    (ce qui corrrespond aux code unicodes cités 5B et 60)
    un petit caractère d'échappement?

  3. #3
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 690
    Par défaut
    \u005B correspond au caractère [ donc tu te retrouves avec l'expression [[-`] et en effet il lui manque un crochet fermant. Il faudrait échapper ce crocher via un \ (qu'il faudra doubler vu qu'il est utilisé dans une chaine).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NomCritere = Normalizer.normalize(NomCritere, Normalizer.Form.NFD).replaceAll("[\\\u005B-\u0060]", "");

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 144
    Par défaut
    Merci beaucoup, j'ai effectivement pas fait attention au fait que les caractère unicode pouvaient créer des problèmes à ce niveau là...
    LDPDC

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme de Regex Pattern
    Par kiwikiwi1 dans le forum Général Java
    Réponses: 1
    Dernier message: 21/04/2008, 13h07
  2. ResourceBundle - java.util.regex.pattern
    Par babalastar dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 14/02/2008, 14h43
  3. [regex.Pattern] comment on active CASE_INSENSITIVE ?
    Par ramislebob dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 02/08/2007, 15h16
  4. [Regex] Pattern matching
    Par jeRame dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 26/06/2007, 14h28
  5. [regex] pattern pour une methode publique
    Par Invité dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 17/04/2007, 12h57

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