2010-07-18 5 views
2

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

Ben Tailor <[email protected]> 
[email protected], [email protected], Ben Tailor <[email protected]> 

I судимых этот

$string ="Ben Tailor <[email protected]>"; 
$string =~ /\b([^\s][email protected][^\s]+)\b/g ; 
print $string; 

И вне положенном XAS:

Ben Tailor <[email protected]> 

Кто-то есть идеи?

Фиксированный с помощью

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

Thx

+0

Он будет выводить то же, что и входную строку, потому что все, что вы делали, выполняло совпадение с регулярным выражением, а затем выводило строку снова. Вы не использовали захваченную часть $ 1 или замените замену s /// g; – dalton

ответ

7

Посмотрите на Email :: Адрес или электронная почта :: AddressParser из CPAN

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

Это возвращает список E-mail :: Адрес объектов он находит во входной строке.

Смежные вопросы