Bonsoir,

J'avais un problème avec les regex pour trouver une URL (voir ici). Voilà que j'en ai encore un avec une recherche de mail... Je comprend pas. Pourtant, j'avais fini par comprendre mon erreur avec les URL mais bon.

Voilà donc ma fonction de regex :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
function replaceMail($theText)
{
	$expreg = "`"; // Début de ligne
	$expreg .= "([a-zA-Z0-9]\._-)+"; // L'utilisateur, peut comporter un "_", ".", "-", obligatoire au moins une lettre
	$expreg .= "@"; // L'arobase, obligatoire
	$expreg .= "(([a-zA-Z0-9])*\.)+"; // Le domaine ou sous-domaine, alphanum, présent au moins une fois
	$expreg .= "[a-zA-Z]{2,4}"; // l'extention, mini 2 et maxi 3 caractères
	$expreg .= "`"; // Fin de ligne
 
	return preg_replace($expreg, "¤Mail¤", $theText);
}
Voici le résultat :

truc@machin.com --> truc@¤Mail¤
truc-truc@machin.com --> truc-truc@¤Mail¤
D'après le résultat, je comprends bien qu'il y a un problème soit au niveau de l'utilisateur soit au niveau de l'arobase. J'ai donc essayé d'enlevé les point, underscore et tiret, mais ça change rien, même résultat. Au niveau de l'arobase, je sais pas quoi faire de plus.

Quelqu'un pourrait me dire ce que j'ai mal fait et me l'expliquer ? Merci d'avance.