Как извлечь адрес электронной почты из строки, используя Perl? - PullRequest
3 голосов
/ 18 июля 2010

Как извлечь адрес электронной почты из строки, используя perl, и поместить адрес электронной почты в переменную? Мои строки выглядят как

Ben Tailor <bentaylor@gmail.com>
barbara@gmail.com, barbara2@gmail.com, Ben Tailor <bentaylor@gmail.com>

Я попробовал это

$string ="Ben Tailor <bentaylor@gmail.com>";
$string =~ /\b([^\s]+@[^\s]+)\b/g ;
print $string;

И Out положил XAS:

Ben Tailor <bentaylor@gmail.com>

У кого-то есть идея?

Исправлено с помощью

Email::Valid->address($string);

Thx

Ответы [ 2 ]

8 голосов
/ 18 июля 2010

Взгляните на Email :: Address или Email :: AddressParser из cpan

 my @addrs = Email::Address->parse(
    q[me@local, Tony <me@local>, "Tony" <me@local>]
  );

Возвращает список объектов Email :: Address, найденных во входной строке.

2 голосов
/ 18 июля 2010

Начните с https://metacpan.org/pod/Email::Valid. Кажется, это работает очень хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...