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] Expression régulière qui ne passe pas avec \.


Sujet :

Collection et Stream Java

  1. #1
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Par défaut [Regex] Expression régulière qui ne passe pas avec \.
    Bonjour,

    dans un programme Java je dois vérifier l'expression régulière suivante pour un email entré par un utilisateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|gov|biz|info|name|aero|fr|be|co.uk|it|es|de|info\b
    donc je fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String email = "jsdarges@developpez.com";
    boolean okEmail = email.matches("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|gov|biz|info|name|aero|fr|be|co.uk|it|es|de|info\b");
    Par contre cela ne marche pas et j'ai l'erreur suivante qui m'est retournée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Invalid excape sequence (valid ones are \b \t \n \f \r \" \' \\)
    Donc il semblerait que j'ai un problème au niveau de "\." qui n'est pas pris en compte en Java ??? Je pourrai le remplacer par quoi ?

    Merci de vos réponses.
    Google est ton ami mais ton voisin aussi

    Modérateur BI - Responsable Talend
    Mes tutoriels - FAQ Talend - FAQ SQL*Plus

    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Suivez @Developpez sur twitter !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,
    Comme \ est un caractère spécial en java, il faut l'échapper dans ta regexp et donc écrire :
    Tu peux avoir plus d'informations ici
    Tschau

  3. #3
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Par défaut
    Merci pour cette réponse rapide.

    Je n'ai plus cette erreur mais maintenant n'importe quel email que je met, ça me retourn false :s
    Google est ton ami mais ton voisin aussi

    Modérateur BI - Responsable Talend
    Mes tutoriels - FAQ Talend - FAQ SQL*Plus

    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Suivez @Developpez sur twitter !

  4. #4
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,


    Le \b final est incorrect : cela représente le caractère de controle "Backspace"...

    a++

  5. #5
    Membre éprouvé Avatar de jean.2edi
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 106
    Par défaut
    C'est ce que j'allais dire...
    Ton expression rationnelle est compliquée !
    • A quoi servent tes non-capturing-group (?: ... ) ? Tu dois pouvoir enlever le ?:
    • A la fin, tu testes un code pays en 2 caractères majuscules mais pas en minuscules, sauf pour les cas particuliers que tu ajoutes (fr, be...)
    • Ton user ou ton nom de domaine ne peuvent pas être en majuscules ?
    • Le co.uk est inutile si l'expression précédente pour le nom de domaine est bonne (lettres, lettres ou -, lettres, point).

  6. #6
    Rédacteur
    Avatar de jsd03
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Août 2008
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Août 2008
    Messages : 1 221
    Par défaut
    Finalement j'ai changé mon expression régulière par celle-ci beaucoup plus simple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^([a-zA-Z0-9_\\.\\-])+\\@(([a-zA-Z0-9\\-])+\\.)+(|com|org|net|gov|biz|info|name|aero|fr|be|co.uk|it|es|de|info)+$
    Merci à tous.
    Google est ton ami mais ton voisin aussi

    Modérateur BI - Responsable Talend
    Mes tutoriels - FAQ Talend - FAQ SQL*Plus

    Avant toute chose : lire le mode d'emploi du forum et ses règles.
    Suivez @Developpez sur twitter !

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 64
    Par défaut
    Je te déconsseile de filtrer les emails par les tlds... Ca peut poser pas mal de problemes car de nouveaux TLD apparaissent quasi réguilièrement (bon après selon ton utilisation c'est peut etre pas gênant, mais imagine le pauvre mec qui va debugger ton programme le jour ou on ne comprendra pas pourquoi les emails sont refusés... ).

    Il y a la librairie "Apache validators" qui fournit des classes java avec un testeur d'email assez simple.

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

Discussions similaires

  1. Expression régulière qui ne marche pas ?
    Par [ZiP] dans le forum Débuter
    Réponses: 4
    Dernier message: 29/06/2010, 14h42
  2. Réponses: 13
    Dernier message: 15/06/2009, 14h55
  3. [MySQL] requete SQL qui passe pas avec note pad++ but phpmyAdmin
    Par southCfou dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/11/2008, 11h20
  4. [REGEX] expression régulière qui match tout les nombres sauf un
    Par neuromencien dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 28/05/2008, 08h21
  5. [RegEx] Expression régulière qui ne fonctionne pas ?
    Par MaTHieU_ dans le forum Langage
    Réponses: 5
    Dernier message: 23/07/2007, 14h43

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