2010-07-18 7 views
2

Comment extraire l'adresse email d'une chaîne à l'aide de perl et placer l'adresse mail dans une variable? Mes chaînes ressembleComment extraire l'adresse email d'une chaîne en utilisant perl?

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

I tryed ce

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

Et le eteint XAS:

Ben Tailor <[email protected]> 

Quelqu'un a une idée?

fixe en utilisant

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

Thx

+0

Il produirait le même résultat que la chaîne d'entrée car tout ce que vous avez fait était d'effectuer une correspondance regex par rapport à celle-ci puis de sortir à nouveau la chaîne. Vous n'avez pas utilisé la partie capturée $ 1 ou substitue remplacer s /// g; – dalton

Répondre

7

Jetez un oeil à l'adresse électronique :: adresse postale ou électronique :: AddressParser CPAN

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

Cela renvoie une liste d'objets Email :: Adresse il trouve dans la chaîne d'entrée.

Questions connexes