выходное значение с тем же шаблоном

У меня есть этот код в php:

<?php
$mails_list = "user1@example.com, User 2 <user2@example.com>, User 3 (user3@example.com)";
$mails_arr = explode(',', $mails_list);
foreach($mails_arr as $mail){
echo "{$mail}<br>";
}
?>

Обратите внимание, что с этим кодом он будет выводить:

user1@example.com
User 2 <user2@example.com>
User 3 (user3@example.com)

И я не хочу этого. То, что я хочу, это то, что вывод должен быть:

user1@example.com
user2@example.com
user3@example.com

Как я могу сделать это с PHP?

0

Решение

Ты можешь использовать preg_match_all() чтобы захватить все письма с регулярным выражением:

preg_match_all('/[<(]?(\w+@\w+\.\w+)[>)]?/', $mails_list, $matches);
echo implode("\n", $matches[1]);

демонстрация

2

Другие решения

Ну вот,

<?php
$mails_list = "user1@example.com, User 2 <user2@example.com>, User 3 (user3@example.com)";
$mails_arr = explode(',', $mails_list);

preg_match_all('/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}/i', $mails_list, $found_mails);

foreach ($found_mails[0] as $each)  { echo $each.'<br>'; }
2

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector