我試圖編寫一個perl腳本來解析目錄中充滿電子郵件並提取電子郵件地址和相應的名稱。提取電子郵件地址和名稱
現在我解析單詞「From:」,然後提取行,但這是我卡住的地方。
的數據可以採用以下格式:
> From: "Smith, John" <[email protected]>
> From: John Smith <[email protected]>
> From: Frank Smith [mailto:[email protected]]=20
> From: "Smith, Frank" [mailto:[email protected]]=20
,所以我需要太格式化字符串,這樣我結束了3個變量,名字,姓氏和電子郵件。
有沒有更好的方法來解析文件來獲取電子郵件地址和名稱? 我如何處理字符串並重新排列它們,通常需要用逗號來換名稱。
任何人都可以幫忙嗎?
這是迄今爲止我的腳本...
#!/usr/bin/perl
@files = </storage/filters/*>;
foreach $file (@files)
{
open (FILE, "$file");
while($line= <FILE>)
{
print $line if $line =~ /. From:/;
}
close FILE;
}
你看過CPAN嗎?電子郵件::地址可能主要適合賬單。至於名稱的交換,這是微不足道的(交換)和艱難的(以確定是否需要交換 - 我不認爲只有逗號可能是足夠的)。另外,使用glob而不是'<...>' - 更具可讀性。 – Tanktalus 2011-04-19 19:30:58
@Tanktalus電子郵件::地址是偉大的,但它不會處理亂碼,如「'來自:」史密斯,弗蘭克「[mailto:[email protected]] = 20';' – cnicutar 2011-04-19 19:32:56