|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Michael Poliakov 2:5020/400 23 Dec 2000 08:50:43 To : All Subject : Re: выдирание е-мыла -------------------------------------------------------------------------------- On Mon, 18 Dec 2000 12:25:04 +0300, Max Martynov <Max.Martynov@p250.f2.n5025.z2.fidonet.org> wrote: > p>> как можно из поля 'From:' заголовка письма выдрать только сам > p>> адрес? т.е. как одним рег. выражением оставить только > p>> 'proc@internet2.ru' от 'From: "Pimenov Yuri" <proc@internet2.ru>' > p>> либо 'From: proc@internet2.ru' > >пpимеp из Mastering Regular Expressions: > >if ($line =~ m/^From: (\S+) \(([^()]*)\)/) { > $replyaddress = $1; $from_name = $2; >} IMHO пример работает только в очень редких случаях, если адрес формируется определенным образом. Лажа пример, в общем. ===== # как можно из поля 'From:' заголовка письма выдрать только сам # адрес? т.е. как одним рег. выражением оставить только # 'proc@internet2.ru' от 'From: "Pimenov Yuri" <proc@internet2.ru>' # либо 'From: proc@internet2.ru' # # Когда-то я делал так: use Mail::Address; $line = 'From: "Pimenov Yuri" <proc@internet2.ru>'; $from = ((Mail::Address->parse($line))[0])->address(); print "From: $from\n\n"; # пpимеp из Mastering Regular Expressions: # IMHO неверный if ($line =~ m/^From: (\S+) \(([^()]*)\)/) { $replyaddress = $1; $from_name = $2; print "Replyaddress: $replyaddress\nFrom_name: $from_name\n"; } else { print "Example sucks\n"; } ===== Michael Poliakov --- ifmail v.2.15dev5 * Origin: Nizhniny Novgorod Information Networks (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/2080b2b8f398.html, оценка из 5, голосов 10
|