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. 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);
  2. 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. 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";  
      }