Expression régulière

Résolu/Fermé
Lili_754 Messages postés 125 Date d'inscription mercredi 18 avril 2012 Statut Membre Dernière intervention 31 mai 2016 - 7 févr. 2013 à 22:36
xamurai Messages postés 223 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 19 février 2013 - 18 févr. 2013 à 17:00
Bonsoir,

Je cherche à faire une expression reguliere d'une adresse mail academique de type: prenom.nom@etr.toto.fr

sachant que le nom et prenom sont des lettres comprisent entre [a-z] mais de taille variant c'est ici que je rencontre mon premier souci.

Merci d'avance :)

3 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
10 févr. 2013 à 15:31
en php en javascript ?

cherche sur G.... verifier adresse mail
0
Lili_754 Messages postés 125 Date d'inscription mercredi 18 avril 2012 Statut Membre Dernière intervention 31 mai 2016 2
16 févr. 2013 à 11:50
En php. J'ai reussi à faire ça mais est ce la meilleur façon de proceder?
#un mail d'étudiant de l'UPMC
$exp2="#^[a-z]+\.[a-z-]+@etu\.upmc\.fr$#";
$chaine2="lili.papi-molo@etu.upmc.fr";
echo "".listeOccurences($exp2,$chaine2);
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
16 févr. 2013 à 14:56
voila

$regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/'; 
$email=pierre.durand@hotmail.com
//appliquer la fonction preg_match() sur l'adresse email a tester
if (preg_match($regex, $email)) {
     echo $email . "  est au format valide;
} else { 
     echo $email ." n'est dans un format valide;
} 
0
xamurai Messages postés 223 Date d'inscription mardi 11 janvier 2011 Statut Membre Dernière intervention 19 février 2013 15
Modifié par xamurai le 18/02/2013 à 17:02
Alain_42 était sur le bon chemin:
donc modifions un peu son code:

$str = "Jean.tevi@free.com";


/* 
explication   

1)  prenom/nom:  lettres Maj/Min Chiffre, mais ne commence pas par un chiffre ou  
     un tiret, ne se termine pas par un tiret: 

         ([^\d][\w\d-]*[\d\w])   

2) l'hôte: lefttres chifres, sous-domaine, ne commence ni se termine par un  
     tiret: 
          
       [\d\w][\w\d\.\_-][\d\w]  

3) s'il n'existe que 1 sous-domaine et 1 domaine:  

     [\d\w][\w\d\_-][\d\w]\.[\d\w][\w\d\_-][\d\w]  


le top-domain (,net , .edu, .info) requiert minimum 2 lettres: 

      [\w]{2,}  

*/ 

$regex = "/^([^\d][\w\d-]*[\d\w]) \. ([^\d][\w\d-]*[\d\w])[@]([\d\w][\w\d\.\_-]+[\d\w]\.[\w]{2,})$/";   


if(preg_match($regex , $str, $m)) {  
 echo "prenom: {$m[1]} , nom: {$m[1]}  Host: {$m[3]}";  
}  
else  
{  
 echo "email invalide";  
}

0