Webstatt.org - Community seit 2006 - 2012 (2024?)

Regex: Mailadresse auslesen

user-344
06.05.2006 09:38

hallo zusammen,

ich bin noch ein absoluter regex anfänger...und irgendwie weiss ich nicht wie anfangen...

es gibt verschiedene tabellen und alle haben eine gemeinsame eigenschaft, also es gibt kein fixes suchmuster, jedoch möchte ich diese Spalte wo die mailadresse drin steht auslesen...

... <FONT face="Arial,Helvetica,Sans Serif" size=2>
[EMAIL]mail@adresse.ch[/EMAIL] </FONT>...

sprich was er auslesen soll:

feld in der tabelle wo zwischen <FONT face="Arial,...> und </FONT> ein @ drin steht.

Wie beginnt man da am besten? Tut mir leid, Regex ist absolut nicht mein Ding, ich werde aus den Tuts nicht schlau traurig

vielen dank für eure hilfe
gruss
web4

Avatar user-253
06.05.2006 10:23

Ganz grob:


/<FONT face="Arial,Helvetica,Sans Serif" size=2>(.+?@.+?)<\/FONT>/


allerdings findet keinerlei Validierung statt, beispielsweise x@x würde auch treffen.

user-265
06.05.2006 16:13

Ich benutze immer diese Funktion:

function check_email($email) {
$nonascii = "\x80-\xff"; # Non-ASCII-Chars are not allowed

$nqtext = "[^\\\\$nonascii\015\012\"]";
$qchar = "\\\\[^$nonascii]";

$protocol = '(?:mailtolächeln';

$normuser = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';
$quotedstring = "\"(?:$nqtext|$qchar)+\"";
$user_part = "(?:$normuser|$quotedstring)";

$dom_mainpart = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.';
$dom_subpart = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*';
$dom_tldpart = '[a-zA-Z]{2,5}';
$domain_part = "$dom_subpart$dom_mainpart$dom_tldpart";

$regex = "$protocol?$user_part\@$domain_part";

return preg_match("/^$regex$/",$email);
}


Aber ist auch nicht 100%ig...

Avatar user-253
06.05.2006 17:14

Hier stellt sich natürlich auch die Frage wie sinnvoll eine genaue Validierung eine Email Adresse ist, wenn der User einfach eine falsche angeben kann.

Ich persönlich prüfe nur die grobe Korrektheit (Buchstaben@Mindestens-2-Buchstaben.2-5-Buchstaben) oder versende einen Registrierungslink.

user-344
07.05.2006 09:23

danke euch beiden, in diesem falle hat die einfachere version von michael gelangtlächeln aber danke trotzdem!

gruss und einen sonnigen nachmittag
web4