<?php
preg_match_all ( "/[^[:space:]<@]+(?:@[^[:space:]>]+)+/" , $contents , $matches ) ; preg_match_all ( "/\b([a-z0-9%\._\+\-]+@[a-z0-9-\.]+\.[a-z]{2,6})\b/Ui" , $contents , $matches ) ;
PD9waHAKCiRjb250ZW50cyA9IGZpbGVfZ2V0X2NvbnRlbnRzKCJwaHA6Ly9zdGRpbiIpOwoKcHJlZ19tYXRjaF9hbGwoIi9bXls6c3BhY2U6XTxAXSsoPzpAW15bOnNwYWNlOl0+XSspKy8iLCAkY29udGVudHMsICRtYXRjaGVzKTsKcHJpbnRfcigkbWF0Y2hlcyk7CnByZWdfbWF0Y2hfYWxsKCIvXGIoW2EtejAtOSVcLl9cK1wtXStAW2EtejAtOS1cLl0rXC5bYS16XXsyLDZ9KVxiL1VpIiwgJGNvbnRlbnRzLCAkbWF0Y2hlcyk7CnByaW50X3IoJG1hdGNoZXMpOw==
stdin
JnF1b3Q7V2lsbCBBbGV4JnF1b3Q7ICZsdDthbGV4MTNAY2l0Lm1zdS5lZHUmZ3Q7OyZxdW90O01vaXRhIFphY3QmcXVvdDsgJmx0O3phY3QzQGNpdC5tc3UuZWR1Jmd0OzsmcXVvdDtCb2IgQXJtcyZxdW90OyAmbHQ7YXJtczFAY2l0Lm1zdS5lZHUmZ3Q7OyZxdW90O01laWEgVGVybXMmcXVvdDsgJmx0O3Rlcm1zbWFAY2l0Lm1zdS5lZHUmZ3Q7OwoKICZxdW90O1NvYXAsIEpvZSZxdW90OyAmbHQ7am9lLnNvYXBAZXhhbXBsZS5jb20mZ3Q7CiBKb2UgU29hcCAgJmx0O2pvZS5zb2FwQGV4YW1wbGUuY29tJmd0OwogKEpvZSBTb2FwKSBqb2Uuc29hcEBleGFtcGxlLmNvbQoKYW5kIHR1cm4gdGhlbSBpbnRvIGEgbGlzdCB3aGVyZSBhbGwgdGhlIGFib3ZlIGV4YW1wbGVzIGFyZSBjb252ZXJ0ZWQgdG86CgogSm9lIFNvYXAgICZsdDtqb2Uuc29hcEBleGFtcGxlLmNvbSZndDsKCmJ1dCBpdCB3b24ndCBoYW5kbGUgdGhpbmdzIGxpa2U6CgogJnF1b3Q7am9lQHNvYXAmcXVvdDtAZXhhbXBsZS5jb20K
"Will Alex" <alex13@cit.msu.edu>;"Moita Zact" <zact3@cit.msu.edu>;"Bob Arms" <arms1@cit.msu.edu>;"Meia Terms" <termsma@cit.msu.edu>;
"Soap, Joe" <joe.soap@example.com>
Joe Soap <joe.soap@example.com>
(Joe Soap) joe.soap@example.com
and turn them into a list where all the above examples are converted to:
Joe Soap <joe.soap@example.com>
but it won't handle things like:
"joe@soap"@example.com