Стоит отметить, что после поиска в Google для регулярных выражений, с моим сценарием, вот образцы, которые я собрал:
$pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$";
$pattern = "/([\s]*)([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*([ ]+|)@([ ]+|)([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,}))([\s]*)/i";
$pattern = '#([^@]+@[-a-z0-9.]+)#';
$pattern = '(^|\s|<)[a-zA-Z]([.+-]?\w+)+@(\w{2,}\.)+\w{2,5}($|\s|>)';
$pattern = "^[a-zA-Z0-9_.-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$";
$pattern = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?";
$pattern = "(^|\s|<)[a-zA-Z]([.+-]?\w+)+@(\w{2,}\.)+\w{2,5}($|\s|>)";
Лучший шаблон:
$pattern = "/([\s]*)([_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*([ ]+|)@([ ]+|)([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,}))([\s]*)/i";