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

Langage Java Discussion :

Regex Case insensitive avec accent


Sujet :

Langage Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Points : 295
    Points
    295
    Par défaut Regex Case insensitive avec accent
    Bonjour à tous,

    Un bon bout de code vaut mieux que toutes les explications ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public class Test {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		String test = " toto TOTO tité TITÉ ";	
    		System.out.println("1 :"+removeAll(test,"toto"));
    		System.out.println("2 :"+removeAll(test,"TOTO"));
    		System.out.println("3 :"+removeAll(test,"tité"));
    		System.out.println("4 :"+removeAll(test,"TITÉ"));
    	}
     
     
    	public static String removeAll(String text,String libelleToRemove){
    		return text.replaceAll("(?i)\\b"+libelleToRemove +"\\b", "");
    	}
    }
    1 : tité TITÉ
    2 : tité TITÉ
    3 : toto TOTO TITÉ
    4 : toto TOTO tité
    Mais pourquoi ça marche pas avec les accents ????????

    La javadoc dit bien
    http://download.oracle.com/javase/1,...ttern.html#sum

    Case-insensitive matching can also be enabled via the embedded flag expression (?i).
    É est bien la majuscule de é ... ce qui fait qu'ils devraient être identiques lors de traitement "case insensitive" !!

    Je sens qu'il y a une fourberie de problème d'encodage derrière mais je ne trouve pas de justification.

    Si quelqu'un a une idée ?

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Par défaut le "case-insensitive" ne s'applique qu'aux caractères ASCII : http://javasearch.developpez.com/j2s...SE_INSENSITIVE

    Il faut rajouter le flag UNICODE_CASE (?u) pour l'activer sur tous les caractères...


    a++

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    333
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 333
    Points : 295
    Points
    295
    Par défaut
    Parfait.

    Merci

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/09/2010, 23h21
  2. JS : recuperation valeur case à cocher avec accent
    Par LutorCorp dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 25/09/2007, 14h17
  3. [RegEx] regex majuscule avec accent
    Par zobsystem dans le forum Langage
    Réponses: 5
    Dernier message: 22/06/2007, 16h29
  4. [Hibernate] Requête avec un LIKE %% case insensitive
    Par n@n¤u dans le forum Hibernate
    Réponses: 4
    Dernier message: 21/06/2006, 17h27
  5. [Regex] Vérifier un texte avec accents
    Par supermanu dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 09/10/2005, 15h29

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