如何只从列表中获取邮件


How to get only mails from list?

我有一个html上下文,其中包含纯文本格式的用户名、邮件和密码。信息组之间有两个换行符。

nickname
mail@example.com
pass

nickname2
mail2@example.com
pass2

我想获取所有带有逗号分隔符的邮件,并将它们设置为一个大字符串变量。

我尝试了许多正则表达式,但都无法解决问题。任何关于找到真正正则表达式的建议都将不胜感激。

模式:

.+@.+.'.'w+

示例:https://regex101.com/r/nM1hK3/2

编辑的

如果.txt文件不是太大(如果您有足够的内存和时间):

$lines = file('mails.txt',FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
function get_emails($val)
{
  if (filter_var($val, FILTER_VALIDATE_EMAIL)) {
    return $val;
}
}
$emails=array_filter($lines,"get_emails");
//print_r($emails);
$emails_var=join(",",$emails);
//echo $emails_var;

"mails.txt"->当然是文件的路径。