Bonjour,
j'utilise une expression reguliere pour trouver toutes les adresses emails qui se trouvent dans un fichier texte.
Voici comment je procède :Celà marche nickel si mon fichier ne commence pas par une adresse genre :
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 // texte ou je vais chercher les emails String texte; // arraylist ou je met les adresse trouvee ArrayList<String> liste = new ArrayList<String>(0); // creation de l'entree FileReader entree; try { entree = new FileReader("/emplacement/fichier.txt"); } catch (FileNotFoundException e) { throw new Exception("Impossible d'ouvrir le fichier", e); } // parcourt le fichier int c; try { while ((c = entree.read()) != -1) { texte = texte + (char) c; } } catch (IOException e) { throw new Exception("Impossible de lire le fichier", e); } // definition de la regexp Pattern aChercher = Pattern.compile("[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@" + "[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*(\\.[_A-Za-z0-9-]+)"); Matcher chercheur = aChercher.matcher(texte); // recherche les adresse while (chercheur.find()) { String email = chercheur.group(); liste.add(email); }Mais j'ai un problème si le fichier commence par une adresse :Dans ce cas j'obtient :adresse@mail.com blabla
adresse2@mail.comJ'ai pioché le pattern sur internet car je suis en bille mais je pense pas que cela vienne de sa...nulladresse@mail.com
adresse2@mail.com
Je suis perdu, merci de m'eclairer
Partager