quella che avevi fatto tu andava bene, devi solamente toglierii caratteri speciali ^ e $ in modo tale che il controllo lo esegue su tutta la stringa:
eregi_replace("([a-z0-9\._-]+)(@[a-z0-9\.-_]+)(\.{1}[a-z]{2,6})", "[edit: per motivi di privacy l'indirizzo email è stato cancellato]", $_POST['messaggio']);![]()