如何在电子邮件ID删除名称

问题描述:

我有一些电子邮件的格式,如如何在电子邮件ID删除名称

[email protected] - Admin,[email protected] - Kika,[email protected] - Mka, 

我现在需要发送的电子邮件在PHP多个ID的,由于上面的名字其认为错误

预计输出

[email protected],[email protected],[email protected], 

我需要的所有邮件ID后删除名字我怎么能做到这一点我甲肝Ë尝试str_replace,但那不给我一个解决方案。

在这种情况下,我如何使用preg_match

+1

替换['\ S * - * ?,'](https://regex101.com/r/wR5dE7/2)','。或匹配['(\ w + @ \ S + \。\ w +)'](https://regex101.com/r/wR5dE7/3) – Tushar

+0

为什么该格式的输入是以?开头的? – 2016-03-28 05:04:49

寄存器精通

$list = '[email protected] - Admin,[email protected] - Kika,[email protected] - Mka,'; 
$str = preg_replace('/'.preg_quote('-') .'.*?'.preg_quote(',') . '/', ',', $list); 

RTRIM要取出端逗号

$str = rtrim($str, ','); 
+0

我得到的输出是这样的'[email protected],iwi @ test.co,mla @ test.co,'现在我怎么能在''后面删除空格,'? –

+0

我上面编辑了 –

+0

删除间距的$ str = preg_replace('/'。preg_quote(' - ')。'。*?'。preg_quote(',')。'/',',',$ list); –