identifier une adresse email dans une chaine
Bonjour à tous,
Je viens ici car je n'arrive pas à résoudre un problème de syntaxe pour mon expression régulière suivante :
Je cherche à récupérer des adresses mails dans un texte quelconque.
Voici le code :
Code:
1 2 3 4 5 6
| $pattern = '/[a-z0-9]+((-|_|\.)?[a-z0-9]+)*@[a-z0-9]+((-|\.)?[a-z0-9]+)*\.[a-z]{2,4}+/';
$result = preg_match_all( $pattern, $source, $matches );
echo '<pre>';
print_r($matches);
echo '</pre>'; |
avec :
Code:
$source = 'uvessesprodebsiozfela>tdi7@hotmail.fr';
Cela ne fonctionne pas alors qu'il devrait me retourner l'adresse : tdi7@hotmail.fr
avec :
Code:
$source = 'uvessesprodiozfela>tdi7@hotmail.fr'; //(3 caractère supprimés dans la première partie de la chaine)
Cela fonctionne bien puisque je récupère le mail voulu.
J'en déduit que mon expression régulière ne fonctionne pas bien... mais j'ai beau chercher... je n'arrive pas à trouver mon erreur.
Merci à vous pour votre aide.