Expression régulière

Résolu
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

  1. 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";  
    }
    
    
    1. 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;
      } 
      1. en php en javascript ?

        cherche sur G.... verifier adresse mail
        1. 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);