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

Java Discussion :

Caractere speciaux avec expression réguliere


Sujet :

Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    279
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 279
    Points : 102
    Points
    102
    Par défaut Caractere speciaux avec expression réguliere
    Bonjour,

    je souhaite verifier si une chaine contient un des caracteres speciaux comme par exemple : " & > < = ) ^ / ! § % * µ £ $ ....

    je veux faire ce test sur une adresse par exemple : 9 Rue de Moli"ere (elle retourne une erreur)

    ce test doit etre fait avec une expression réguliere pas avec les codes ascii.

    merci

  2. #2
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    Bonjour,

    Si tu utilises l'expression suivante Tu interceptes tout ce qui n'est ni un espace, ni une lettre majuscule ou minuscule, ni un chiffre
    Donc pour ta chaine 9 Rue de Moli"ere, c'est uniquement le " qui correspond à l'expression.

  3. #3
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    Tu peux aussi stocker tes éléments spéciaux dans un tableau de Char.
    Puis comparer tous les éléments du tableau avec ta chaîne de caractère en utilisant une boucle.
    Enfin, si tu trouve que c'est pas bon, tu peux envoyer une throws exception que tu récupérera dans un catch...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    279
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 279
    Points : 102
    Points
    102
    Par défaut
    Citation Envoyé par zorm Voir le message
    Bonjour,

    Si tu utilises l'expression suivante Tu interceptes tout ce qui n'est ni un espace, ni une lettre majuscule ou minuscule, ni un chiffre
    Donc pour ta chaine 9 Rue de Moli"ere, c'est uniquement le " qui correspond à l'expression.
    merci, j'ai pu résoudre le probleme

  5. #5
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    Pour ma culture personnel,
    facilus68 peux tu me dire comment tu mets en place [^\m]

    Une ligne de code me suffira à comprendre

    Merci

  6. #6
    Membre éclairé Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Points : 672
    Points
    672
    Par défaut
    C'est ce qu'on appelle les expressions régulières, c'est utilisé dans le cadre de manipulation/vérification/... sur des chaines de caractères.
    Si tu vas dans la javadoc voir la classe Pattern (java.util.regex), tu trouveras des informations sur l'écriture des expressions.

    Après une façon de les utiliser pour résoudre le problème donné ici pourrait s'écrire ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        public TestClass() {
            //TRUE car caractere "
            System.out.println(caracSpeciaux("9 Rue de Moli\"ere"));
            //TRUE car caractere .
            System.out.println(caracSpeciaux("9 Rue de Moli.ere"));
            //FALSE car pas de caracteres spéciaux
            System.out.println(caracSpeciaux("9 Rue de Moliere"));
        }
     
        private boolean caracSpeciaux(String chaine) {
            Pattern p = Pattern.compile("[^ \\w]");
            Matcher m = p.matcher(chaine);
            return m.find();
        }
    Si tu es un peu curieux, je te conseille vraiment de lire l'article car il est accessible et tu peux faire des trucs vraiment sympa avec les expressions régulières

  7. #7
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    Si tu es un peu curieux, je te conseille vraiment de lire l'article car il est accessible et tu peux faire des trucs vraiment sympa avec les expressions régulières
    J'en ai mangé un peu des expressions régulières dans le cadre de ma formation (IUT Informatique). Je comprend maintenant mieux le [^\w].

    Merci pour ce petit exemple en tout cas, ça ma bien éclairé

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

Discussions similaires

  1. echapper caracteres speciaux avec mysqldb
    Par chaying dans le forum Général Python
    Réponses: 2
    Dernier message: 05/12/2012, 10h10
  2. Switch case avec expression réguliere
    Par neptunia dans le forum Langage
    Réponses: 5
    Dernier message: 14/03/2008, 12h51
  3. [RegEx] Remplacement avec Expressions régulieres
    Par TmR14 dans le forum Langage
    Réponses: 8
    Dernier message: 24/01/2007, 22h28
  4. Probleme avec expression réguliere
    Par Raideman dans le forum Langage
    Réponses: 3
    Dernier message: 22/06/2006, 13h56
  5. [Regex]Match d'une regexp avec une chaîne avec caractères spéciaux
    Par gdawirs dans le forum Collection et Stream
    Réponses: 13
    Dernier message: 25/11/2005, 12h24

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