Schrift
[thread]9023[/thread]

email adressen aus text filtern?

Leser: 2


<< |< 1 2 >| >> 14 Einträge, 2 Seiten
Gast Gast
 2007-05-22 00:23
#76814 #76814
hi,
ich möchte e-mail addys aus einen text filtern nur leider hab ich keine ahnung wo ich mit regex ansetzen soll.

kann mit evtl. einer weiter helfen?
pktm
 2007-05-22 01:00
#76815 #76815
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Am besten erstellst du dir erst einmal eine RegEx die eMails akzeptiert. Da gibt es auch in zahlreichen Einführungen zu RegEx Schritt-Für-Schritt-Anleitungen zu.
http://www.intergastro-service.de (mein erstes CMS :) )
MisterL
 2007-05-22 01:40
#76816 #76816
User since
2006-07-05
334 Artikel
BenutzerIn
[default_avatar]
Dazu sucht man nach einem "@" als Signal und sucht dann nach links und rechts nach einem Leerzeichen als Endbedingung.
Statt dem Klammeraffen können es auch phantasiereichere Zeichen sein: ät , (at), _ät_,...

Gruss MisterL
“Perl is the only language that looks the same before and after RSA encryption.”
havi
 2007-05-22 10:30
#76817 #76817
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl

use warnings;
use strict;

while(<DATA>) {

chomp;

my $email = "";
($email) = $_ =~ m/([\w.+-]+\@[a-zA-Z0-9.-]*[a-zA-Z0-9][a-zA-Z0-9.-]*\.[a-zA-Z]{2,})/; # dafuer gibts aber auch eine Menge Module
print $email, "\n";

} # while

__DATA__
Das ist ein Test wo div. emailadressen vorhanden sind wie zB [EMAIL=havi@thebest.at]havi@thebest.at[/EMAIL]
oder auch [EMAIL=havi@istdergroesste.at]havi@istdergroesste.at[/EMAIL], wahrscheinlich gibt es aber auch emailadressen
die wie folgt heissen: [EMAIL=havi@magichnicht.at]havi@magichnicht.at[/EMAIL], wie auch immer.


Gruss,
havi
pq
 2007-05-22 11:06
#76818 #76818
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
da es in wirklichkeit immer komplizierter ist, nimmt man ein modul
wie z.b. CPAN:Email::Find. nach leerzeichen suchen ist
quatsch.
@MisterL: wenn jemand seine email-adresse mit (at) o.ä. verschleiert,
hat das sicher einen grund und er will gar nicht gefunden werden.
will man ihn doch finden, ist man ein spammer.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
vayu
 2007-05-22 14:39
#76819 #76819
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
und was passiert wenn 2 emails in einer zeile stehen havi? :)
havi
 2007-05-22 15:21
#76820 #76820
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
[quote=vayu,22.05.2007, 12:39]und was passiert wenn 2 emails in einer zeile stehen havi? :)[/quote]
... dann so:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl

use warnings;
use strict;

while(<DATA>) {

my @email = ();
(@email) = $_ =~ m/([\w.+-]+\@[a-zA-Z0-9.-]*[a-zA-Z0-9][a-zA-Z0-9.-]*\.[a-zA-Z]{2,})/g; # dafuer gibts aber auch eine Menge Module
print join("\n", @email), "\n";

} # while

__DATA__
Das ist ein Test wo div. emailadressen vorhanden sind wie zB [EMAIL=havi@thebest.at]havi@thebest.at[/EMAIL]
oder auch [EMAIL=havi@istdergroesste.at]havi@istdergroesste.at[/EMAIL], wahrscheinlich gibt es aber auch emailadressen
die wie folgt heissen: [EMAIL=havi@magichnicht.at]havi@magichnicht.at[/EMAIL], wie auch immer.
Es funktioniert auch wenn 2 emailadressen in einer Zeile stehen, wie man hier sehen kann.
[EMAIL=havi@havi.at]havi@havi.at[/EMAIL] und [EMAIL=havi@zweimal.at]havi@zweimal.at[/EMAIL]


Gruss,
havi
GwenDragon
 2007-05-22 15:47
#76821 #76821
User since
2005-01-17
14761 Artikel
Admin1
[Homepage]
user image
Ich würde havis Code ( sorry! ) nicht unbedingt verwenden, denn es findet eben nicht jede E-Mail-Adresse und schon nur wenige nach RFC 822 bzw. RFC 2822-Standard.

Was ist zum Beispiel mit
Code: (dl )
"Test@toast.local" <testo@123.123.123.123> (Bitte nicht wieder an [EMAIL=Test@Ost.eron.buy.me]Test@Ost.eron.buy.me[/EMAIL])

WO ist dann die gültige E-Mail-Adresse?

Beispiele für Adressen unter http://www.faqs.org/rfcs/rfc2822.html bei Appendix A\n\n

<!--EDIT|GwenDragon|1179834810-->
bloonix
 2007-05-22 15:50
#76822 #76822
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
CPAN:Mail::RFC822::Address kann ich nur empfehlen.
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
havi
 2007-05-22 16:04
#76823 #76823
User since
2003-08-04
2036 Artikel
BenutzerIn
[Homepage]
user image
[quote=GwenDragon,22.05.2007, 13:47]Ich würde havis Code ( sorry! ) nicht unbedingt verwenden, denn es findet eben nicht jede E-Mail-Adresse und schon nur wenige nach RFC 822 bzw. RFC 2822-Standard.

Was ist zum Beispiel mit
Code: (dl )
"Test@toast.local" <testo@123.123.123.123> (Bitte nicht wieder an [EMAIL=Test@Ost.eron.buy.me]Test@Ost.eron.buy.me[/EMAIL])

WO ist dann die gültige E-Mail-Adresse?

Beispiele für Adressen unter http://www.faqs.org/rfcs/rfc2822.html bei Appendix A[/quote]
Kein Problem, hab ja extra den Kommentar bzgl. Module dazu geschrieben!

In diesem Fall wird aber die Test@toast.local bzw. die Test@Ost.eron.buy.me, wenn man sie dazu nimmt, gefunden, wie auch die regex schon "sagt".

Gruss,
havi\n\n

<!--EDIT|havi|1179835572-->
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2007-05-22 00:23.