Как извлечь определенную строку (электронную почту) из файла через php

У меня есть текстовый файл с некоторыми членами информации об организационных экспертах. Теперь я хочу извлечь из него только адреса электронной почты.

Пример файла:

a@a.com jhgvhdhf bahau@gmail.com hdghfd G@g.com 

Как я могу извлечь все строки, заканчивающиеся на @hotmail.com ? Если filename является foo.txt …

Solutions Collecting From Web of "Как извлечь определенную строку (электронную почту) из файла через php"

Загрузите данные в строку (я использую для этого $str ) и применяю регулярное выражение электронной почты:

 $pattern = '/[A-Z0-9._%+-]+@[^\.].*\.[az]{2,}/i'; if (preg_match($pattern, $str, $matches)){ echo $matches[1]; } 

Как сказал Гай ниже, вы можете загрузить файл в строку с помощью:

 $str = file_get_contents('/path/to/file'); 

РЕДАКТИРОВАТЬ:

Для hotmail вы можете изменить шаблон:

 $pattern = '/[A-Z0-9._%+-]+@hotmail.com/i';