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 :

Détecter un Pattern dans une string


Sujet :

avec Java

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Points : 83
    Points
    83
    Par défaut Détecter un Pattern dans une string
    Hello à tous

    Je chercher à récupérer une string issue d'un pattern regex (un mail notamment) et je m'aperçois que ma méthode ne fonctionne pas !

    Voila la fonction qui est sensé récupérer mon pattern mail, s étant la string cencée contenir éventuellement un mail:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public static String getPatternMailIfExist(String s)
        {
            String pattern = "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}$";
            Pattern p = Pattern.compile(pattern);
            Matcher m = p.matcher(s);
            while(m.find())
            {
                return (m.group(1));
            }
            return null;
        }
    Et bien lorsque je teste cette fonction sur la string :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String s = "(PIC)(PIC)\n\nCharles\n\n\nMART\n\n\nN\n\n\ncharles@explisites.com\nTél\n\n\n:\nOl\n38\n45\n23\n63";
    Ça ne fonctionne pas (retourne null et mois je voudrais que ca me retourne "charles@explisites.com")

    Quelqu'un a une idée ?

    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 342
    Points
    342
    Par défaut
    Salut,
    de ce que je vois ton expression reguliere n'accepte que les majuscule pour que les minuscule passe il faudrait la changer en quelque chose du style (j'ai enlevé les symboles de début de chaine et fin de chaine : en les laissant il ne peut y avoir que l'adresse dans la chaine que tu testes, rien avant ni après):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}"

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Points : 83
    Points
    83
    Par défaut
    Gailuris merci de ta réponse !

    Ca à l'air de marcher mais là j'ai une autre erreur, c'est au niveau de ma fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Error Type: java.lang.IndexOutOfBoundsException
    No group 1
    m.group(1) n'exsite pas apparement...

    Il faut mettre quoi ici alors ? (0 ?)

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par benthebest Voir le message
    Il faut mettre quoi ici alors ? (0 ?)
    Oui, comme indiqué par la JavaDoc de Pattern

    (À noter au passage que reconnaître une adresse email avec un pattern, c'est pas à la portée du premier venu et que toute tentative de le faire va forcément créer plein de faux négatifs. Bref, à part pour vérifier s'il y a bien un @ avec quelque chose de pas transparent devant et derrière, c'est stupide.
    C'est une stupidité souvent demandée par les clients, je le sais, mais je conseille de bien s'assurer qu'ils y tiennent, aux bugs qu'ils te demandent d'insérer.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 422
    Points : 83
    Points
    83
    Par défaut
    Ok super les amis merci à vous c'est ok !!

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

Discussions similaires

  1. [C# 2.0] Détecter les doublons dans une List<string>
    Par Rodie dans le forum Windows Forms
    Réponses: 36
    Dernier message: 30/03/2013, 15h21
  2. [C#]Comment executer du code qui se trouve dans une string ?
    Par freddyboy dans le forum Windows Forms
    Réponses: 4
    Dernier message: 28/02/2005, 16h31
  3. mettre un entier dans une string
    Par kinder29 dans le forum SL & STL
    Réponses: 14
    Dernier message: 14/02/2005, 11h54
  4. [DOM] sauver dans une String
    Par hocinema dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 28/09/2004, 21h44
  5. [Syntaxe] mettre des ' dans une string ?
    Par souch dans le forum Débuter
    Réponses: 4
    Dernier message: 14/08/2003, 16h26

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