Bonjour,

j'utilise une expression reguliere pour trouver toutes les adresses emails qui se trouvent dans un fichier texte.

Voici comment je procède :
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);
	}
Celà marche nickel si mon fichier ne commence pas par une adresse genre :Mais j'ai un problème si le fichier commence par une adresse :
adresse@mail.com blabla
adresse2@mail.com
Dans ce cas j'obtient :
nulladresse@mail.com
adresse2@mail.com
J'ai pioché le pattern sur internet car je suis en bille mais je pense pas que cela vienne de sa...
Je suis perdu, merci de m'eclairer