Thread Zwei Zeichen _gleichzeitig_ in String finden (19 answers)
Opened by geloescht at 2012-06-20 18:13

bianca
 2012-06-20 18:22
#159239 #159239
User since
2009-09-13
6977 Artikel
BenutzerIn

user image
2012-06-20T16:13:26 ?
Nach ausgiebigen Diskussionen steht auf jeden Fall fest: Es soll nur nach einem "@"-Zeichen und mindestens einem Punkt gesuch werden. Die RFC's sind so umfangreich und konfus, daß alles andere keinen Sinn macht!

Es gibt einen Regex für E-Mails und sogar die Möglichkeit, diese zu prüfen. Sooo kompliziert ist das nicht. Und konfus ist das eigentlich auch nicht.
Ich nutze derzeit für die Erkennung von E-Mail Adressen das Perl Modul CPAN:Email::Find
Und eine einigermaßen taugliche Prüfung auf E-Mail Adressen inkl. Korrekturen könnte man ohne Modul auch so machen:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
sub checkmail {
        my $mail = shift;
        return '' if !defined $mail || ($mail =~ tr/\@//) != 1;
        my ($user,$serv);
        if ($mail =~ m/^(.+)@(.+)$/s) { $user = lc $1; $serv = lc $2; }
        else { return '' }
        $serv =~ s/\Q$1// while $serv =~ /([\n\r \])>}'";,])$/;
        return '' if
                !($serv =~ /^.+\..+$/)
                        ||
                $serv =~ /[^a-z0-9.-]/
                        ||      
                $serv =~ /\.\./g
                        ||
                $serv =~ /\.$/
                        ||
                (($user =~ tr/"//)/2) =~ /\./
        ;
        $user =~ s/""//g;
        $user =~ s/\Q$1// while $user =~ /^([\n\r \[{(<';,])/;
        return '' if $user =~ /[^a-z0-9._+&="-]/;
        return $user . '@' . $serv;
}

Vielleicht kannst du dir da was rausziehen.
10 print "Hallo"
20 goto 10

View full thread Zwei Zeichen _gleichzeitig_ in String finden