2010-11-24 2 views
0

Mögliche Duplizieren:
How to extract email address from a string using perl?Erhalten Sie E-Mail von String

sagen, dass ich eine Zeichenfolge wie dieses:

Dr. X Universität Name der Schule in nirgendwo pete @ school.edu Blah blah 3 ein niner

Wie bekomme ich die E-Mail raus?

+0

Nein, nicht eine exakte Kopie. Dies ist zum Extrahieren von E-Mail-Adressen aus frei fließendem Text. –

+0

Wenn das Ihr Problem ist, sollten Sie definitiv keine Regex mit '[A-Z]' und keine unempfindliche Groß-/Kleinschreibung verwenden. – Axeman

Antwort

-2

Sie sagen, die Sprache nicht, aber man könnte diese Methode verwenden:

http://www.codeproject.com/KB/vb/extractemail.aspx http://www.webdeveloper.com/forum/showthread.php?t=200875

und es gab viele andere auf Google (nichts für ungut, genau das, was ich gesehen habe, um Ihnen zu helfen.)

+3

Er markierte die Sprache. – cdhowie

5

Sie können versuchen Email::Find.

#!/usr/bin/perl 

use strict; use warnings; 
use YAML; 
use Email::Find; 

my $finder = Email::Find->new(\&print_email); 

while (my $data = <DATA>) { 
    $finder->find(\$data); 
} 

sub print_email { 
    print Dump \@_; 
} 

__DATA__ 
Say I have a string like this: 

Dr. X University of School name in nowhere [email protected] Blah blah 3 one niner 

How would I get the email out of there? 

Ausgang:

--- 
- !!perl/array:Mail::Address 
    - '' 
    - [email protected] 
- [email protected]