[JAVA] Extraire adresse email d'une chaine

Extraire adresse email d'une chaine [JAVA] - Java - Programmation

Marsh Posté le 22-04-2010 à 11:13:00    

Bonjour à tous !
Voilà, mon problème est le suivant. Je dois développer un programme permettant de parser des pages web d'un site afin d'en extraire certaines informations. Le point sur lequel je bloque est la récupération des adresses emails. En fait, les adresses mails ne sont pas placées dans des balises réservées, mais juste dans une div, au milieu (ou plus généralement à la fin) d'une zone de texte. Je suis capable de récuperer toute cette zone de texte, mais je ne vois pas comment en extraire juste l'adresse email, qui est la seule chose qui m'intéresse dans tout ce texte.
Si quelqu'un a une piste pour me débloquer, je le remercie d'avance.
Cordialement

Reply

Marsh Posté le 22-04-2010 à 11:13:00   

Reply

Marsh Posté le 22-04-2010 à 14:29:58    

alors en gros  
String mapage="du baratin et la flute lionel.gadille@free.fr et encore du  baratin";
   String mapage2="du baratin et la flute <div>lionel.gadille@free.fr</div>";
   //http://gadille.free.fr/doc/scripting/perl/perl.html#Regex  \\s(w+@w+\\.\\w\\w)\\w+
   System.out.println("g1" );
   Matcher matcher = Pattern.compile("(\\S+@\\w+.\\w\\w)\\W\\w+" ).matcher(mapage);
   if (matcher.find()) {
    System.out.println("glob:"+matcher.group());
       System.out.println("mail:"+matcher.group(1));
   }
   System.out.println("g2" );
   matcher = Pattern.compile("<div>(\\S+@\\w+.\\w\\w)</div>" ).matcher(mapage2);
   if (matcher.find()) {
       System.out.println("glob:"+matcher.group());
       System.out.println("mail:"+matcher.group(1));
   }    
 
la complete ici
http://gadille.free.fr/doc/java/java.html#regex

Reply

Marsh Posté le 22-04-2010 à 14:53:23    

mel21lio -> Merci beaucoup pour ton aide. Mais entre-temps, j'ai trouvé une méthode vraiment simple pour faire cela. Je la poste ici, au cas où elle pourrait intéresser quelqu'un :
 
Pattern p = Pattern.compile("[a-z0-9._-]+@[a-z0-9._-]{2,}\\.[a-z]{2,4}", Pattern.MULTILINE);
Matcher m = p.matcher(taChaine);
while (m.find())
{
   System.out.println(m.group());
}
 
Voilà ! Bonne journée

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed