$re = '/^\w+([-+.\']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/m';
$str = 'vinamra@gmail.com
vinm@fmmao.com
vin @ . com
vdd@us.com.com
sh sha @cc.com
vin@dnsldfnsdlfsnflsnslfnd.com
ddd@11.com
sdf@ff.com
as@com
john @gmail.com
Akasdfgnqwefujqfj^1234!1k@gmail.com
T1hisi4snot5anem6ail@mcd.com
John.Smith@mcd.com
Joe.Smith@cmd.com
test
@ .
john @bkla.com
';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php